.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1983-1991, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH socket 2 "29 أكتوبر 2025" "صفحات دليل لينكس 6.18" .SH الاسم socket \- إنشاء نقطة نهاية للاتصال .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint socket(int \fP\fIdomain\fP\fB, int \fP\fItype\fP\fB, int \fP\fIprotocol\fP\fB);\fP .fi .SH الوصف تنشئ \fBsocket\fP() نقطة نهاية للاتصال وتُعيد واصف ملف يشير إلى تلك النقطة. سيكون واصف الملف المُعاد من استدعاء ناجح هو واصف الملف ذو الرقم الأصغر غير المفتوح حالياً للعملية. .P يُحدد الوسيط \fIdomain\fP نطاق اتصال؛ يختار هذا عائلة البروتوكول التي ستُستخدم للاتصال. تُعرّف هذه العائلات في \fI\fP. تتضمن الصيغ التي يفهمها نواة لينكس حالياً: .TS tab(:); l1 lw40 l. الاسم:الغرض:صفحة دليل T{ \fBAF_UNIX\fP T}:T{ اتصال محلي T}:T{ \fBunix\fP(7) T} T{ \fBAF_LOCAL\fP T}:T{ مرادف \fBAF_UNIX\fP T}:T{ T} T{ \fBAF_INET\fP T}:بروتوكولات الإنترنت IPv4:T{ \fBip\fP(7) T} T{ \fBAF_AX25\fP T}:T{ بروتوكول الراديو الهاوي AX.25 T}:T{ .\" Part of ax25-tools \fBax25\fP(4) T} T{ \fBAF_IPX\fP T}:IPX \- بروتوكولات Novell: T{ \fBAF_APPLETALK\fP T}:AppleTalk:T{ \fBddp\fP(7) T} T{ \fBAF_X25\fP T}:بروتوكول ITU\-T X.25 / ISO/IEC\ 8208:T{ \fBx25\fP(7) T} T{ \fBAF_INET6\fP T}:بروتوكولات الإنترنت IPv6:T{ \fBipv6\fP(7) T} T{ \fBAF_DECnet\fP T}:T{ مقابس بروتوكول DECet T} T{ \fBAF_KEY\fP T}:T{ بروتوكول إدارة المفاتيح، طُوّر أصلاً للاستخدام مع IPsec T} T{ \fBAF_NETLINK\fP T}:T{ جهاز واجهة مستخدم النواة T}:T{ \fBnetlink\fP(7) T} T{ \fBAF_PACKET\fP T}:T{ واجهة حزم منخفضة المستوى T}:T{ \fBpacket\fP(7) T} T{ \fBAF_RDS\fP T}:T{ .\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4 بروتوكول مقابس البيانات الموثوقة (RDS) T}:T{ .\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds.7 .\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds-rdma.7 \fBrds\fP(7) .br \fBrds\-rdma\fP(7) T} T{ \fBAF_PPPOX\fP T}:T{ طبقة نقل PPP عامة، لإعداد أنفاق L2 (L2TP و PPPoE) T} T{ \fBAF_LLC\fP T}:T{ .\" linux-history commit: 34beb106cde7da233d4df35dd3d6cf4fee937caa بروتوكول التحكم بالارتباط المنطقي (IEEE 802.2 LLC) T} T{ \fBAF_IB\fP T}:T{ .\" commits: 8d36eb01da5d371f..ce117ffac2e93334 عنونة InfiniBand الأصلية T} T{ \fBAF_MPLS\fP T}:T{ .\" commits: 0189197f441602acdca3f97750d392a895b778fd تبديل الوسوم متعدد البروتوكولات T} T{ \fBAF_CAN\fP T}:T{ .\" commits: 8dbde28d9711475a..5423dd67bd0108a1 بروتوكول ناقل شبكة منطقة التحكم للسيارات T} T{ \fBAF_TIPC\fP T}:T{ .\" commits: b97bf3fd8f6a16966d4f18983b2c40993ff937d4 بروتوكول TIPC، "مقابس المجال العنقودي" T} T{ \fBAF_BLUETOOTH\fP T}:T{ .\" commits: 8d36eb01da5d371f..ce117ffac2e93334 بروتوكول مقبس بلوتوث منخفض المستوى T} T{ \fBAF_ALG\fP T}:T{ .\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314 واجهة إلى واجهة برمجة التشفير للنواة T} T{ \fBAF_VSOCK\fP T}:T{ .\" commit: d021c344051af91f42c5ba9fdedc176740cbd238 بروتوكول VSOCK (في الأصل "VMWare VSockets") لاتصال المشرف الضيفي T}:T{ \fBvsock\fP(7) T} T{ \fBAF_KCM\fP T}:T{ .\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314 واجهة KCM (مُضاعف اتصال النواة) T} T{ \fBAF_XDP\fP T}:T{ .\" commit: c0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7 واجهة XDP (مسار البيانات السريع) T} .TE .P يمكن العثور على تفاصيل إضافية لعوائل العناوين المذكورة أعلاه، بالإضافة إلى معلومات عن عدة عوائل عناوين أخرى، في \fBaddress_families\fP(7). .P للمقبس \fIنوع\fP محدد، والذي يحدد دلالات الاتصال. الأنواع المعرفة حالياً هي: .TP 16 \fBSOCK_STREAM\fP يوفر تيارات بايت متسلسلة، موثوقة، ثنائية الاتجاه، قائمة على الاتصال. قد تكون آلية نقل بيانات خارج النطاق مدعومة. .TP \fBSOCK_DGRAM\fP يدعم الرزم (رسائل غير متصلة، غير موثوقة ذات طول أقصى ثابت). .TP \fBSOCK_SEQPACKET\fP يوفر مسار نقل بيانات متسلسل، موثوق، ثنائي الاتجاه قائم على الاتصال لرزم ذات طول أقصى ثابت؛ يُطلب من المستهلك قراءة رزمة كاملة مع كل استدعاء نظام إدخال. .TP \fBSOCK_RAW\fP يوفر وصولاً خاماً لبروتوكول الشبكة. .TP \fBSOCK_RDM\fP يوفر طبقة رزم موثوقة لا تضمن الترتيب. .TP \fBSOCK_PACKET\fP مهمل ويجب عدم استخدامه في البرامج الجديدة؛ انظر \fBpacket\fP(7). .P قد لا تُنفذ بعض أنواع المقابس بواسطة جميع عوائل البروتوكولات. .P منذ لينكس 2.6.27، يخدم وسيط \fIالنوع\fP غرضاً ثانياً: بالإضافة إلى تحديد نوع مقبس، قد يتضمن OR أحادي البت لأي من القيم التالية، لتعديل سلوك \fBsocket\fP(): .TP 16 \fBSOCK_NONBLOCK\fP اضبط علامة حالة الملف \fBO_NONBLOCK\fP على وصف الملف المفتوح (انظر \fBopen\fP(2)) المشار إليه بواسطة واصف الملف الجديد. استخدام هذه العلامة يوفر استدعاءات إضافية لـ \fBfcntl\fP(2) لتحقيق النتيجة نفسها. .TP \fBSOCK_CLOEXEC\fP اضبط علامة الإغلاق عند التنفيذ (\fBFD_CLOEXEC\fP) على واصف الملف الجديد. انظر وصف العلامة \fBO_CLOEXEC\fP في \fBopen\fP(2) للأسباب التي تجعل هذا مفيدًا. .P يحدد \fIالبروتوكول\fP بروتوكولاً معيناً لاستخدامه مع المقبس. عادةً يوجد بروتوكول واحد فقط لدعم نوع مقبس معين ضمن عائلة بروتوكول معينة، وفي هذه الحالة يمكن تحديد \fIالبروتوكول\fP كـ 0. ومع ذلك، من الممكن وجود العديد من البروتوكولات، وفي هذه الحالة يجب تحديد بروتوكول معين بهذه الطريقة. رقم البروتوكول المراد استخدامه خاص بـ "مجال الاتصال" الذي سيتم فيه الاتصال؛ انظر \fBprotocols\fP(5). انظر \fBgetprotoent\fP(3) حول كيفية تعيين سلاسل أسماء البروتوكولات إلى أرقام البروتوكولات. .P مقابس من نوع \fBSOCK_STREAM\fP هي تيارات بايت ثنائية الاتجاه كاملة. لا تحافظ على حدود السجلات. يجب أن يكون مقبس التيار في حالة \fIمتصل\fP قبل أن يمكن إرسال أو استقبال أي بيانات عليه. يُنشأ اتصال بمقبس آخر باستدعاء \fBconnect\fP(2). بمجرد الاتصال، يمكن نقل البيانات باستخدام استدعاءات \fBread\fP(2) و \fBwrite\fP(2) أو بعض المتغيرات من استدعاءات \fBsend\fP(2) و \fBrecv\fP(2). عند اكتمال جلسة، يمكن تنفيذ \fBclose\fP(2). يمكن أيضًا نقل البيانات خارج النطاق كما هو موصوف في \fBsend\fP(2) واستقبالها كما هو موصوف في \fBrecv\fP(2). .P تضمن بروتوكولات الاتصال التي تنفذ \fBSOCK_STREAM\fP عدم فقدان البيانات أو تكرارها. إذا تعذر إرسال قطعة بيانات تتوفر لها مساحة مخزن مؤقت في بروتوكول النظير بنجاح خلال فترة زمنية معقولة، فإن الاتصال يُعتبر ميتاً. عند تمكين \fBSO_KEEPALIVE\fP على المقبس، يتحقق البروتوكول بطريقة خاصة بالبروتوكول مما إذا كان الطرف الآخر لا يزال حياً. تُثار إشارة \fBSIGPIPE\fP إذا أرسلت أو استقبلت عملية على تيار مكسور؛ يتسبب هذا في خروج العمليات الساذجة التي لا تعالج الإشارة. تستخدم مقابس \fBSOCK_SEQPACKET\fP نفس استدعاءات النظام مثل مقابس \fBSOCK_STREAM\fP. الفرق الوحيد هو أن استدعاءات \fBread\fP(2) ستعيد فقط كمية البيانات المطلوبة، وسيتم تجاهل أي بيانات متبقية في الرزمة الواردة. كما يتم الحفاظ على جميع حدود الرسائل في الرزم الواردة. .P تسمح مقابس \fBSOCK_DGRAM\fP و \fBSOCK_RAW\fP بإرسال رزم إلى المراسلين المذكورين في استدعاءات \fBsendto\fP(2). تُستقبل الرزم عموماً باستخدام \fBrecvfrom\fP(2)، والذي يعيد الرزمة التالية مع عنوان مرسلها. .P \fBSOCK_PACKET\fP هو نوع مقبس مهمل لاستقبال رزم خام مباشرة من برنامج تشغيل الجهاز. استخدم \fBpacket\fP(7) بدلاً من ذلك. .P يمكن استخدام عملية \fBfcntl\fP(2) \fBF_SETOWN\fP لتحديد عملية أو مجموعة عمليات لتلقي إشارة \fBSIGURG\fP عند وصول البيانات خارج النطاق أو إشارة \fBSIGPIPE\fP عند انقطاع اتصال \fBSOCK_STREAM\fP بشكل غير متوقع. يمكن أيضًا استخدام هذه العملية لتعيين العملية أو مجموعة العمليات التي تستقبل الإدخال/الإخراج والإشعار غير المتزامن لأحداث الإدخال/الإخراج عبر \fBSIGIO\fP. استخدام \fBF_SETOWN\fP يعادل استدعاء \fBioctl\fP(2) مع وسيط \fBFIOSETOWN\fP أو \fBSIOCSPGRP\fP. .P عندما تشير الشبكة إلى حالة خطأ لوحدة البروتوكول (مثلاً، باستخدام رسالة ICMP لـ IP) يتم تعيين علم الخطأ المعلق للمقبس. ستعيد العملية التالية على هذا المقبس رمز الخطأ للخطأ المعلق. بالنسبة لبعض البروتوكولات، من الممكن تمكين قائمة انتظار أخطاء لكل مقبس لاسترجاع معلومات مفصلة عن الخطأ؛ انظر \fBIP_RECVERR\fP في \fBip\fP(7). .P يتم التحكم في تشغيل المقابس بواسطة \fIخيارات\fP على مستوى المقبس. تُعرف هذه الخيارات في \fI\fP. تُستخدم الدالتان \fBsetsockopt\fP(2) و \fBgetsockopt\fP(2) لتعيين الخيارات والحصول عليها. .SH "قيمة الإرجاع" عند النجاح، يُعاد واصف ملف للمقبس الجديد. عند الخطأ، يُعاد \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP يُرفض الإذن لإنشاء مقبس من النوع و/أو البروتوكول المحدد. .TP \fBEAFNOSUPPORT\fP التنفيذ لا يدعم عائلة العناوين المحددة. .TP \fBEINVAL\fP بروتوكول غير معروف، أو عائلة بروتوكول غير متوفرة. .TP \fBEINVAL\fP .\" Since Linux 2.6.27 أعلام غير صالحة في \fItype\fP. .TP \fBEMFILE\fP وُصل إلى الحد الأقصى لواصفات الملفات المفتوحة لكل عملية. .TP \fBENFILE\fP وُصل إلى الحد الأقصى لإجمالي عدد الملفات المفتوحة على مستوى النظام. .TP \fBENOBUFS\fP أو \fBENOMEM\fP ذاكرة غير كافية متوفرة. لا يمكن إنشاء المقبس حتى يتم تحرير موارد كافية. .TP \fBEPROTONOSUPPORT\fP نوع البروتوكول أو البروتوكول المحدد غير مدعوم ضمن هذا النطاق. .P قد تتولد أخطاء أخرى بواسطة وحدات البروتوكول الأساسية. .SH الإصدارات يحدد POSIX.1\-2024 \fBSOCK_CLOFORK\fP، لكن لينكس لا يدعمه. .SH المعايير POSIX.1\-2024. .SH التاريخ POSIX.1\-2001،‏ 4.2BSD. .P إنه قابل للنقل عموماً من/إلى الأنظمة غير التابعة لـ BSD التي تدعم نسخاً من طبقة مقابس BSD (بما في ذلك متغيرات System\ V). .P الثوابت الظاهرية المستخدمة تحت 4.x BSD لعائلات البروتوكولات هي \fBPF_UNIX\fP و \fBPF_INET\fP وهكذا، بينما تُستخدم \fBAF_UNIX\fP و \fBAF_INET\fP وهكذا لعائلات العناوين. ومع ذلك، يعد دليل BSD بالفعل: "عائلة البروتوكول هي نفسها عائلة العنوان بشكل عام"، والمعايير اللاحقة تستخدم AF_* في كل مكان. .TP \fBSOCK_NONBLOCK\fP .TQ \fBSOCK_CLOEXEC\fP POSIX.1\-2024. .SH أمثلة مثال على استخدام \fBsocket\fP() موضح في \fBgetaddrinfo\fP(3). .SH "انظر أيضًا" \fBaccept\fP(2)، \fBbind\fP(2)، \fBclose\fP(2)، \fBconnect\fP(2)، \fBfcntl\fP(2)، \fBgetpeername\fP(2)، \fBgetsockname\fP(2)، \fBgetsockopt\fP(2)، \fBioctl\fP(2)، \fBlisten\fP(2)، \fBread\fP(2)، \fBrecv\fP(2)، \fBselect\fP(2)، \fBsend\fP(2)، \fBshutdown\fP(2)، \fBsocketpair\fP(2)، \fBwrite\fP(2)، \fBgetprotoent\fP(3)، \fBaddress_families\fP(7)، \fBip\fP(7)، \fBsocket\fP(7)، \fBtcp\fP(7)، \fBudp\fP(7)، \fBunix\fP(7) .P \[lq]دروس تمهيدية في الاتصال بين العمليات لنظام 4.3BSD\[rq] و\[lq]دروس الاتصال بين العمليات لنظام BSD\[rq]، معاد طباعتها في \fIالوثائق التكميلية لمبرمجي يونكس المجلد 1.\fP .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .