.\" -*- 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_CONNECT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH BIO_S_CONNECT 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_connect, BIO_new_connect, BIO_set_conn_hostname, BIO_set_conn_port, BIO_set_conn_address, BIO_set_conn_ip_family, BIO_get_conn_hostname, BIO_get_conn_port, BIO_get_conn_address, BIO_get_conn_ip_family, BIO_set_nbio, BIO_set_sock_type, BIO_get_sock_type, BIO_get0_dgram_bio, BIO_do_connect \- BIO اتصال .SH موجز .IX Header موجز .Vb 1 \& #include \& \& const BIO_METHOD *BIO_s_connect(void); \& \& BIO *BIO_new_connect(const char *name); \& \& long BIO_set_conn_hostname(BIO *b, char *name); \& long BIO_set_conn_port(BIO *b, char *port); \& long BIO_set_conn_address(BIO *b, BIO_ADDR *addr); \& long BIO_set_conn_ip_family(BIO *b, long family); \& const char *BIO_get_conn_hostname(BIO *b); \& const char *BIO_get_conn_port(BIO *b); \& const BIO_ADDR *BIO_get_conn_address(BIO *b); \& const long BIO_get_conn_ip_family(BIO *b); \& \& long BIO_set_nbio(BIO *b, long n); \& \& int BIO_set_sock_type(BIO *b, int sock_type); \& int BIO_get_sock_type(BIO *b); \& int BIO_get0_dgram_bio(BIO *B, BIO **dgram_bio); \& \& long BIO_do_connect(BIO *b); .Ve .SH الوصف .IX Header الوصف \&\fBBIO_s_connect()\fP تُرجع أسلوب BIO للاتصال. هذه غلاف حول إجراءات اتصال مقبس TCP/IP الخاصة بالمنصة. .PP باستخدام BIOs الاتصال، يمكن إنشاء اتصالات TCP/IP ونقل البيانات باستخدام إجراءات BIO فقط. بهذه الطريقة، تُخفى أي عمليات خاصة بالمنصة بواسطة تجريد BIO. .PP ستُجري عمليات القراءة والكتابة على BIO اتصال الإدخال/الإخراج على الاتصال الأساسي. إذا لم يُنشأ اتصال وتم إعداد المنفذ واسم المضيف (انظر أدناه) بشكل صحيح، فسيُنشأ اتصال أولاً. .PP تدعم BIOs الاتصال \fBBIO_puts()\fP و \fBBIO_gets()\fP. .PP إذا تم تعيين علامة الإغلاق على BIO اتصال، فسيُغلق أي اتصال نشط ويُغلق المقبس عند تحرير BIO. .PP استدعاء \fBBIO_reset()\fP على BIO اتصال سيُغلق أي اتصال نشط ويعيد تعيين BIO إلى حالة يمكنه فيها الاتصال بنفس المضيف مرة أخرى. .PP \&\fBBIO_new_connect()\fP تدمج \fBBIO_new()\fP و \fBBIO_set_conn_hostname()\fP في استدعاء واحد: أي أنها تُنشئ BIO اتصال جديد باسم المضيف \fBname\fP. .PP \&\fBBIO_set_conn_hostname()\fP تستخدم السلسلة \fBname\fP لتعيين اسم المضيف. يمكن أن يكون اسم المضيف عنوان IP؛ إذا كان العنوان من نوع IPv6، فيجب وضعه بين قوسين \f(CW\*(C`[\*(C'\fP و \f(CW\*(C`]\*(C'\fP. يمكن أن يتضمن اسم المضيف أيضًا المنفذ بالصيغة hostname:port؛ انظر \fBBIO_parse_hostserv\fP\|(3) و \fBBIO_set_conn_port()\fP للتفاصيل. .PP \&\fBBIO_set_conn_port()\fP تعين المنفذ إلى \fBport\fP. يمكن أن يكون \fBport\fP بالصيغة الرقمية أو سلسلة خدمة مثل "http"، والتي ستُربط برقم منفذ باستخدام دالة النظام \fBgetservbyname()\fP. .PP \&\fBBIO_set_conn_address()\fP تعين معلومات العنوان والمنفذ باستخدام \fBBIO_ADDR\fP\|(3ssl). .PP \&\fBBIO_set_conn_ip_family()\fP تعين عائلة IP. .PP \&\fBBIO_get_conn_hostname()\fP تُرجع اسم المضيف لـ BIO الاتصال أو NULL إذا تمت تهيئة BIO ولكن لم يُعين اسم مضيف. قيمة الإرجاع هذه مؤشر داخلي لا ينبغي تعديله. .PP \&\fBBIO_get_conn_port()\fP تُرجع المنفذ كسلسلة. قيمة الإرجاع هذه مؤشر داخلي لا ينبغي تعديله. .PP \&\fBBIO_get_conn_address()\fP تُرجع معلومات العنوان كـ BIO_ADDR. قيمة الإرجاع هذه مؤشر داخلي لا ينبغي تعديله. .PP \&\fBBIO_get_conn_ip_family()\fP تُرجع عائلة IP الخاصة بـ BIO المتصل. .PP \&\fBBIO_set_nbio()\fP تضبط علامة الإدخال/الإخراج غير المحظورة إلى \fBn\fP. إذا كان \fBn\fP صفرًا، فتُضبط الإدخال/الإخراج المحظور. إذا كان \fBn\fP 1، فتُضبط الإدخال/الإخراج غير المحظور. الإدخال/الإخراج المحظور هو المبدئي. يجب استدعاء \fBBIO_set_nbio()\fP قبل إنشاء الاتصال لأن الإدخال/الإخراج غير المحظور يُضبط أثناء عملية الاتصال. .PP \&\fBBIO_do_connect()\fP تحاول توصيل BIO المقدم. يُنفذ ذلك مصافحة SSL/TLS بقدر ما تدعمه BIO. بالنسبة لـ BIOs غير SSL، يُجرى الاتصال عادةً على مستوى TCP. إذا أسفر تحليل اسم النطاق عن عناوين IP متعددة، فتُجرى محاولة جميعها بعد فشل \fBconnect()\fP. تُرجع الدالة 1 إذا وُصل الاتصال بنجاح. تُرجع قيمة صفر أو سالبة إذا تعذر إنشاء الاتصال. يجب استخدام استدعاء \fBBIO_should_retry()\fP لـ BIOs الاتصال غير المحظورة لتحديد ما إذا كان يجب إعادة المحاولة. إذا كان الاتصال قد أُنشئ بالفعل، فلا تأثير لهذا الاستدعاء. .PP \&\fBBIO_set_sock_type()\fP يمكن استخدامها لضبط قيمة نوع مقبس كما ستمرر في استدعاء \fBsocket\fP\|(2). القيم المدعومة حاليًا فقط هي \fBSOCK_STREAM\fP (المبدئي) و\fBSOCK_DGRAM\fP. إذا ضُبط \fBSOCK_DGRAM\fP، فالاتصال المُنشأ هو مقبس مخطط بيانات UDP يُدار عبر \fBBIO_s_datagram\fP\|(3). استدعاءات الإدخال/الإخراج مثل \fBBIO_read\fP\|(3) و\fBBIO_write\fP\|(3) تُمرر بشفافية إلى مثيل داخلي من \fBBIO_s_datagram\fP\|(3). يمكن استرجاع مثيل \fBBIO_s_datagram\fP\|(3) المُنشأ باستخدام \fBBIO_get0_dgram_bio()\fP إذا رغب، والذي يكتب مؤشرًا إلى مثيل \fBBIO_s_datagram\fP\|(3) إلى \fI*dgram_bio\fP. عمر مثيل \fBBIO_s_datagram\fP\|(3) الداخلي يُدار بواسطة \fBBIO_s_connect()\fP ولا يحتاج إلى تحريره من قبل المستدعي. .PP \&\fBBIO_get_sock_type()\fP تسترجع القيمة المضبوطة باستخدام \fBBIO_set_sock_type()\fP. .SH ملاحظات .IX Header ملاحظات إذا ضُبط الإدخال/الإخراج المحظور، فإن قيمة إرجاع غير موجبة من أي استدعاء إدخال/إخراج سببها حالة خطأ، على الرغم من أن الإرجاع الصفري يعني عادةً أن الاتصال أُغلق. .PP إذا وُفر اسم المنفذ كجزء من اسم المضيف، فسيتجاوز ذلك أي قيمة مضبوطة بـ \fBBIO_set_conn_port()\fP. قد يكون هذا غير مرغوب إذا كان التطبيق لا يرغب في السماح بالاتصال بمنافذ عشوائية. يمكن تجنب ذلك بالتحقق من وجود الحرف \*(Aq:\*(Aq في اسم المضيف المُمرر وإما الإشارة إلى خطأ أو اقتطاع السلسلة عند تلك النقطة. .PP القيم التي تُرجعها \fBBIO_get_conn_hostname()\fP و\fBBIO_get_conn_address()\fP و\fBBIO_get_conn_port()\fP تُحدث عند محاولة اتصال. قبل أي محاولة اتصال، القيم المُرجعة هي تلك التي ضبطها التطبيق نفسه. .PP لا يتعين على التطبيقات استدعاء \fBBIO_do_connect()\fP ولكن قد ترغب في فعل ذلك لفصل عملية الاتصال عن معالجة الإدخال/الإخراج الأخرى. .PP إذا ضُبط الإدخال/الإخراج غير المحظور، فستُطلب إعادة المحاولة حسب الاقتضاء. .PP بالإضافة إلى \fBBIO_should_read()\fP و\fBBIO_should_write()\fP، من الممكن أيضًا أن تكون \fBBIO_should_io_special()\fP صحيحة أثناء عملية الاتصال الأولية مع السبب BIO_RR_CONNECT. إذا أُرجعت هذه، فهذا مؤشر على أن محاولة الاتصال ستحظر، فيجب على التطبيق بعد ذلك اتخاذ الإجراء المناسب للانتظار حتى يتصل المقبس الأساسي وإعادة محاولة الاستدعاء. .PP \&\fBBIO_set_conn_hostname()\fP و\fBBIO_set_conn_port()\fP و\fBBIO_get_conn_hostname()\fP و\&\fBBIO_set_conn_address()\fP و\fBBIO_get_conn_port()\fP و\fBBIO_get_conn_address()\fP و\&\fBBIO_set_conn_ip_family()\fP و\fBBIO_get_conn_ip_family()\fP و\&\fBBIO_set_nbio()\fP و\fBBIO_do_connect()\fP هي وحدات ماكرو. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBBIO_s_connect()\fP تُرجع طريقة BIO الاتصال. .PP \&\fBBIO_set_conn_address()\fP و\fBBIO_set_conn_port()\fP و\fBBIO_set_conn_ip_family()\fP تُرجع 1 أو <=0 إذا حدث خطأ. .PP \&\fBBIO_set_conn_hostname()\fP تُرجع 1 عند النجاح و<=0 عند الفشل. .PP \&\fBBIO_get_conn_address()\fP تُرجع معلومات العنوان أو NULL إذا لم يُضبط شيء. .PP \&\fBBIO_get_conn_hostname()\fP تُرجع اسم المضيف المتصل أو NULL إذا لم يُضبط شيء. .PP \&\fBBIO_get_conn_ip_family()\fP تُرجع عائلة العنوان أو \-1 إذا لم تُضبط. .PP \&\fBBIO_get_conn_port()\fP تُرجع سلسلة تمثل المنفذ المتصل أو NULL إذا لم يُضبط. .PP \&\fBBIO_set_nbio()\fP تُرجع 1 أو <=0 إذا حدث خطأ. .PP \&\fBBIO_do_connect()\fP يُرجع 1 إذا وُصِل الاتصال بنجاح و<=0 إذا فشل الاتصال. .PP \&\fBBIO_set_sock_type()\fP يُرجع 1 عند النجاح أو 0 عند الفشل. .PP \&\fBBIO_get_sock_type()\fP يُرجع نوع مقبس أو 0 إذا لم تُدعم الاستدعاء. .PP \&\fBBIO_get0_dgram_bio()\fP يُرجع 1 عند النجاح أو 0 عند الفشل. .SH أمثلة .IX Header أمثلة هذا مثال يتصل بخادم ويب على المضيف المحلي ويحاول استرجاع صفحة ونسخ النتيجة إلى المخرج المعياري. .PP .Vb 3 \& BIO *cbio, *out; \& int len; \& char tmpbuf[1024]; \& \& cbio = BIO_new_connect("localhost:http"); \& out = BIO_new_fp(stdout, BIO_NOCLOSE); \& if (BIO_do_connect(cbio) <= 0) { \& fprintf(stderr, "Error connecting to server\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } \& BIO_puts(cbio, "GET / HTTP/1.0\en\en"); \& for (;;) { \& len = BIO_read(cbio, tmpbuf, 1024); \& if (len <= 0) \& break; \& BIO_write(out, tmpbuf, len); \& } \& BIO_free(cbio); \& BIO_free(out); .Ve .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBBIO_ADDR\fP\|(3), \fBBIO_parse_hostserv\fP\|(3) .SH التاريخ .IX Header التاريخ \&\fBBIO_set_conn_int_port()\fP, \fBBIO_get_conn_int_port()\fP, \fBBIO_set_conn_ip()\fP, و\fBBIO_get_conn_ip()\fP أُزيلت في OpenSSL 1.1.0. استخدم \fBBIO_set_conn_address()\fP و\fBBIO_get_conn_address()\fP بدلاً منها. .PP BIOs الاتصال تدعم \fBBIO_gets()\fP, \fBBIO_get0_dgram_bio()\fP, \fBBIO_get_sock_type()\fP, \&\fBBIO_set_sock_type()\fP أُضيفت في OpenSSL 3.2. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-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 .