.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "BIO_S_DATAGRAM 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH BIO_S_DATAGRAM 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم BIO_s_datagram, BIO_new_dgram, BIO_ctrl_dgram_connect, BIO_ctrl_set_connected, BIO_dgram_recv_timedout, BIO_dgram_send_timedout, BIO_dgram_get_peer, BIO_dgram_set_peer, BIO_dgram_detect_peer_addr, BIO_dgram_get_mtu_overhead \- BIO شبكي بدلالات الرزم .SH موجز .IX Header موجز .Vb 1 \& #include \& \& BIO_METHOD *BIO_s_datagram(void); \& BIO *BIO_new_dgram(int fd, int close_flag); \& \& int BIO_ctrl_dgram_connect(BIO *bio, const BIO_ADDR *peer); \& int BIO_ctrl_set_connected(BIO *bio, const BIO_ADDR *peer); \& int BIO_dgram_recv_timedout(BIO *bio); \& int BIO_dgram_send_timedout(BIO *bio); \& int BIO_dgram_get_peer(BIO *bio, BIO_ADDR *peer); \& int BIO_dgram_set_peer(BIO *bio, const BIO_ADDR *peer); \& int BIO_dgram_get_mtu_overhead(BIO *bio); \& int BIO_dgram_detect_peer_addr(BIO *bio, BIO_ADDR *peer); .Ve .SH الوصف .IX Header الوصف \&\fBBIO_s_datagram()\fP هي تنفيذ BIO مصمم للاستخدام مع مقابس شبكية توفر دلالات الرزم، مثل مقابس UDP. وهي مناسبة للاستخدام مع DTLSv1 أو QUIC. .PP لأن \fBBIO_s_datagram()\fP تمتلك دلالات رزم، فإن استدعاء واحد لـ \fBBIO_write()\fP يُرسل رزمة واحدة واستدعاء واحد لـ \fBBIO_read()\fP يستقبل رزمة واحدة. إذا كان حجم المخزن المُمرر إلى \fBBIO_read()\fP غير كافٍ، تُبتَر الرزمة بصمت. .PP لـ BIO قائم على الذاكرة توفر دلالات رزم مطابقة لتلك الخاصة بـ \&\fBBIO_s_datagram()\fP، انظر \fBBIO_s_dgram_pair\fP\|(3). .PP تدعم BIO هذه دالتي \fBBIO_sendmmsg\fP\|(3) و \fBBIO_recvmmsg\fP\|(3). .PP عند استخدام \fBBIO_s_datagram()\fP، من المهم ملاحظة أن: .IP \(bu 4 يمكن استخدام BIO هذه مع مقبس شبكي موصول أو غير موصول. المقبس الموصول هو مقبس شبقي استُدعيت عليه \fBBIO_connect\fP\|(3) أو دالة مشابهة خاصة بنظام التشغيل. يمكن لمثل هذا المقبس استقبال رزم فقط من النظير المُحدد. أي مقبس آخر هو مقبس غير موصول ويمكنه استقبال رزم من أي مضيف. .IP \(bu 4 على الرغم من تسميتهما، لا \fBBIO_ctrl_dgram_connect()\fP ولا \fBBIO_ctrl_set_connected()\fP تسببان اتصال المقبس. تُوفر عناصر التحكم هذه للإشارة إلى BIO كيف يُهيأ المقبس الأساسي وكيف سيُستخدم؛ انظر أدناه. .IP \(bu 4 استخدام \fBBIO_s_datagram()\fP مع مقبس شبكي غير موصول خطير لأن أي استدعاء ناجح لـ \fBBIO_read()\fP يؤدي إلى تعيين عنوان النظير المستخدم لأي استدعاء لاحق لـ \fBBIO_write()\fP إلى عنوان المصدر للرزمة المستلمة بواسطة ذلك الاستدعاء لـ \fBBIO_read()\fP. وبالتالي، ما لم يستدعِ المتصل \&\fBBIO_dgram_set_peer()\fP فورًا قبل كل استدعاء لـ \fBBIO_write()\fP، أو لا يستدعي \fBBIO_read()\fP أبدًا، فقد يتسبب أي مضيف على الشبكة في إعادة توجيه الرزم المستقبلية المكتوبة إلى ذلك المضيف. لذلك، يُوصى بأن يستخدم المستخدمون إما \&\fBBIO_s_dgram()\fP فقط مع مقبس موصول، أو، إذا استُخدمت \fBBIO_s_dgram()\fP مع مقبس غير موصول، استخدام طريقتي \fBBIO_sendmmsg\fP\|(3) و \fBBIO_recvmmsg\fP\|(3) فقط والاستغناء عن استخدام \fBBIO_read\fP\|(3) و \fBBIO_write\fP\|(3). الاستثناء هو عندما يجب استخدام \&\fBDTLSv1_listen\fP\|(3)؛ انظر \fBDTLSv1_listen\fP\|(3) لمزيد من النقاش. .IP \(bu 4 على عكس \fBBIO_read\fP\|(3) و \fBBIO_write\fP\|(3)، فإن طريقتي \fBBIO_sendmmsg\fP\|(3) و \&\fBBIO_recvmmsg\fP\|(3) عديمتا الحالة ولا تسببان تغيير الحالة الداخلية لـ \fBBIO_s_datagram\fP(). .PP عناصر تحكم متنوعة متاحة لتكوين \fBBIO_s_datagram()\fP باستخدام \&\fBBIO_ctrl\fP\|(3): .IP "BIO_ctrl_dgram_connect (BIO_CTRL_DGRAM_CONNECT)" 4 .IX Item "BIO_ctrl_dgram_connect (BIO_CTRL_DGRAM_CONNECT)" هذا مكافئ لاستدعاء \fBBIO_dgram_set_peer\fP\|(3). .Sp على الرغم من اسمها، لا تسبب هذه الدالة اتصال المقبس الأساسي. .IP "BIO_ctrl_set_connected (BIO_CTRL_SET_CONNECTED)" 4 .IX Item "BIO_ctrl_set_connected (BIO_CTRL_SET_CONNECTED)" يُعلم هذا الدالة \fBBIO_s_datagram()\fP ما إذا كان المقبس الأساسي قد وُصل، وبالتالي كيف ينبغي للدالة \fBBIO_s_datagram()\fP أن تحاول استخدام المقبس. .Sp إذا كانت وسيطة \fIpeer\fP غير NULL، تفترض \fBBIO_s_datagram()\fP أن المقبس الأساسي قد وُصل وستحاول استخدام المقبس باستخدام واجهات برمجة تطبيقات نظام التشغيل التي لا تحدد عناوين النظير (مثلاً، \fBsend\fP\|(3) و \fBrecv\fP\|(3) أو ما شابه). يجب أن تحدد وسيطة \fIpeer\fP عنوان النظير الذي وُصل به المقبس. .Sp إذا كانت وسيطة \fIpeer\fP NULL، تفترض \fBBIO_s_datagram()\fP أن المقبس الأساسي غير موصول وستحاول استخدام المقبس باستخدام واجهات برمجة تطبيقات نظام التشغيل التي تحدد عناوين النظير (مثلاً، \fBsendto\fP\|(3) و \fBrecvfrom\fP\|(3)). .Sp لا يؤثر عنصر التحكم هذا على تشغيل \fBBIO_sendmmsg\fP\|(3) أو \&\fBBIO_recvmmsg\fP\|(3). .IP "BIO_dgram_get_peer (BIO_CTRL_DGRAM_GET_PEER)" 4 .IX Item "BIO_dgram_get_peer (BIO_CTRL_DGRAM_GET_PEER)" يُخرج هذا قيمة \fBBIO_ADDR\fP تحدد إحدى القيم التالية، أياً منها حدث مؤخراً: .RS 4 .IP \(bu 4 عنوان النظير الذي مُرر آخر مرة إلى \fBBIO_dgram_set_peer()\fP أو \fBBIO_ctrl_dgram_connect()\fP أو \fBBIO_ctrl_set_connected()\fP. .IP \(bu 4 عنوان النظير للبيانات النقطية (datagram) التي استُقبلت آخر مرة باستدعاء \fBBIO_read()\fP. .RE .RS 4 .RE .IP "BIO_dgram_set_peer (BIO_CTRL_DGRAM_SET_PEER)" 4 .IX Item "BIO_dgram_set_peer (BIO_CTRL_DGRAM_SET_PEER)" يضبط عنوان النظير الذي سيُستخدم للكتابات اللاحقة إلى BIO هذا. .Sp تحذير: عند استخدامه مع مقبس شبكة غير موصول، قد تُعدل القيمة المضبوطة باستدعاءات مستقبلية لـ \fBBIO_read\fP\|(3)، مما يجعل استخدام \fBBIO_s_datagram()\fP خطيراً عند استخدامه مع مقابس شبكة غير موصولة؛ انظر أعلاه. .Sp لا يؤثر هذا على تشغيل \fBBIO_sendmmsg\fP\|(3). لا يؤثر \&\fBBIO_recvmmsg\fP\|(3) على القيمة المضبوطة بواسطة \fBBIO_dgram_set_peer()\fP. .IP "BIO_dgram_detect_peer_addr (BIO_CTRL_DGRAM_DETECT_PEER_ADDR)" 4 .IX Item "BIO_dgram_detect_peer_addr (BIO_CTRL_DGRAM_DETECT_PEER_ADDR)" هذا مشابه لـ \fBBIO_dgram_get_peer()\fP باستثناء أنه إذا لم يُضبط عنوان النظير على كائن BIO، فسيُحاول استدعاء نظام تشغيل مثل \fBgetpeername\fP\|(2) لمحاولة الكشف الآلي عن عنوان النظير الذي وُصل به المقبس الأساسي. قد تنفذ BIOs أخرى عنصر التحكم هذا إذا كانت قادرة على استشعار عنوان النظير، دون الحاجة بالضرورة إلى تنفيذ \&\fBBIO_dgram_set_peer()\fP و \fBBIO_dgram_get_peer()\fP أيضاً. .IP "BIO_dgram_recv_timeout (BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP)" 4 .IX Item "BIO_dgram_recv_timeout (BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP)" يُرجع 1 إذا كانت آخر عملية إدخال/إخراج أُجريت على BIO (مثلاً، عبر استدعاء \fBBIO_read\fP\|(3)) قد نجمت عن انتهاء مهلة الاستقبال. .IP "BIO_dgram_send_timedout (BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP)" 4 .IX Item "BIO_dgram_send_timedout (BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP)" يُرجع 1 إذا كانت آخر عملية إدخال/إخراج أُجريت على BIO (مثلاً، عبر استدعاء \fBBIO_write\fP\|(3)) قد نجمت عن انتهاء مهلة الإرسال. .IP "BIO_dgram_get_mtu_overhead (BIO_CTRL_DGRAM_GET_MTU_OVERHEAD)" 4 .IX Item "BIO_dgram_get_mtu_overhead (BIO_CTRL_DGRAM_GET_MTU_OVERHEAD)" تُرجع كمية بالبايتات وهي تقدير تقريبي لعدد بايتات الحمل الإضافي التي يجب إضافتها عادةً إلى حجم حمولة مخطط البيانات لتقدير الحجم النهائي للحزمة من الطبقة 3 (مثل IP) التي ستحتوي على مخطط البيانات. في معظم الحالات، يمكن تحديد أقصى حجم لحمولة مخطط البيانات يمكن إرساله بتحديد MTU للوصلة بالبايتات وطرح القيمة التي تُرجعها هذه الاستدعاء. .Sp تعتمد القيمة التي تُرجعها هذه الاستدعاء على بروتوكول طبقة الشبكة المستخدم. .Sp القيمة المُرجعة ليست موثوقة تمامًا لأن الحمل الإضافي لمخططات البيانات قد يكون أعلى في تكوينات الشبكة غير النمطية، على سبيل المثال عند استخدام رؤوس تمديد IPv6 أو خيارات IPv4. .IP BIO_CTRL_DGRAM_SET_DONT_FRAG 4 .IX Item BIO_CTRL_DGRAM_SET_DONT_FRAG إذا كان \fInum\fP غير صفري، يُهيئ مقبس الشبكة الأساسي لتمكين وضع Don\*(Aqt Fragment، حيث تُضبط مخططات البيانات مع تعيين بت IP Don\*(Aqt Fragment (DF). إذا كان \fInum\fP صفرًا، يُعطل وضع Don\*(Aqt Fragment. .IP BIO_CTRL_DGRAM_QUERY_MTU 4 .IX Item BIO_CTRL_DGRAM_QUERY_MTU يستعلم نظام التشغيل عن تقييمه لـ Path MTU للوجهة التي يتصل بها مقبس الشبكة الأساسي، ويُعيد ذلك Path MTU بالبايتات. يمكن استخدام هذا التحكم فقط مع مقبس متصل. .Sp هذا غير مدعوم على جميع المنصات ويعتمد على توفر دعم نظام التشغيل. يُرجع 0 عند الفشل. .IP BIO_CTRL_DGRAM_MTU_DISCOVER 4 .IX Item BIO_CTRL_DGRAM_MTU_DISCOVER يطلب هذا التحكم تمكين اكتشاف Path MTU على مقبس الشبكة الأساسي. .IP BIO_CTRL_DGRAM_GET_FALLBACK_MTU 4 .IX Item BIO_CTRL_DGRAM_GET_FALLBACK_MTU تُرجع الحجم الأدنى المقدر لحمولة مخطط البيانات الذي يجب دعمه دائمًا على BIO. يُحدد هذا الحجم بواسطة الحد الأدنى لـ MTU المطلوب دعمه بواسطة طبقة الشبكة الأساسية المطبقة. قد يؤدي استخدام مخططات البيانات بهذا الحجم إلى أداء دون الأمثل، لكن يجب أن يكون قابلاً للتوجيه في جميع الظروف. القيمة المُرجعة هي حجم حمولة مخطط البيانات بالبايتات ولا تتضمن حجم رؤوس بروتوكول الطبقة 3 أو الطبقة 4. .IP BIO_CTRL_DGRAM_MTU_EXCEEDED 4 .IX Item BIO_CTRL_DGRAM_MTU_EXCEEDED تُرجع 1 إذا فشلت آخر محاولة كتابة إلى BIO بسبب تجاوز حجم الكتابة المُحاولة لـ MTU المطبق. .IP BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 4 .IX Item BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT يقبل مؤشرًا إلى \fBstruct timeval\fP. إذا كان الوقت المحدد صفرًا، يُعطل مهلات الاستقبال. وإلا، يُهيئ الفاصل الزمني المحدد كمهلة استقبال للمقبس لأغراض استدعاءات \fBBIO_read\fP\|(3) المستقبلية. .IP BIO_CTRL_DGRAM_SET_PEEK_MODE 4 .IX Item BIO_CTRL_DGRAM_SET_PEEK_MODE إذا كان \fBnum\fP غير صفري، يُفعّل وضع peek؛ وإلا، يُعطّله. عند تفعيل وضع peek، تقرأ استدعاءات \fBBIO_read\fP\|(3) مخططات البيانات من مقبس الشبكة الأساسي في وضع peek، مما يعني أن استدعاءً مستقبليًا لـ \fBBIO_read\fP\|(3) سيعطي نفس مخطط البيانات حتى يُعطّل وضع peek. .Sp \&\fBBIO_recvmmsg\fP\|(3) لا يتأثر بهذا التحكم. .PP \&\fBBIO_new_dgram()\fP هي دالة مساعدة تُنشئ مثيلاً لـ \fBBIO_s_datagram()\fP وتضبط BIO لاستخدام المقبس المُعطى في \fIfd\fP باستدعاء \fBBIO_set_fd()\fP. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBBIO_s_datagram()\fP تُرجع دالة BIO. .PP \&\fBBIO_new_dgram()\fP تُرجع BIO عند النجاح وNULL عند الفشل. .PP \&\fBBIO_ctrl_dgram_connect()\fP و\fBBIO_ctrl_set_connected()\fP و\fBBIO_dgram_set_peer()\fP تُرجع 1 عند النجاح و0 عند الفشل. .PP \&\fBBIO_dgram_get_peer()\fP و\fBBIO_dgram_detect_peer_addr()\fP تُرجع 0 عند الفشل وعدد البايتات لتمثيل العنوان المُخرج (قيمة موجبة) عند النجاح. .PP \&\fBBIO_dgram_recv_timedout()\fP و\fBBIO_dgram_send_timedout()\fP تُرجع 0 أو 1 اعتمادًا على الظرف؛ انظر النقاش أعلاه. .PP \&\fBBIO_dgram_get_mtu_overhead()\fP تُرجع قيمة بالبايت. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBBIO_sendmmsg\fP\|(3)، \fBBIO_s_dgram_pair\fP\|(3)، \fBDTLSv1_listen\fP\|(3)، \fBbio\fP\|(7) .SH التاريخ .IX Header التاريخ \&\fBBIO_dgram_detect_peer_addr()\fP أُضيف في OpenSSL 3.2. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2022\-2025 مؤلفو مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .