.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH vsock 7 "17 مايو 2025" "صفحات دليل لينكس 6.18" .SH الاسم vsock \- عائلة عناوين VSOCK في لينكس .SH موجز .nf \fB#include \fP \fB#include \fP .P \fIstream_socket\fP\fB = socket(AF_VSOCK, SOCK_STREAM, 0);\fP \fIdatagram_socket\fP\fB = socket(AF_VSOCK, SOCK_DGRAM, 0);\fP .fi .SH الوصف عائلة عناوين VSOCK تسهل الاتصال بين الآلات الافتراضية والمضيف الذي تعمل عليه. تُستخدم هذه العائلة من قبل وكلاء الضيف وخدمات المراقب المفرط التي تحتاج إلى قناة اتصال مستقلة عن تكوين شبكة الآلة الافتراضية. .P أنواع المقابس الصالحة هي \fBSOCK_STREAM\fP و \fBSOCK_DGRAM\fP. يوفر \fBSOCK_STREAM\fP تيارات بايت موجهة للاتصال مع تسليم مضمون وبالترتيب. يوفر \fBSOCK_DGRAM\fP خدمة حزم بيانات غير متصلة مع تسليم بأفضل جهد وترتيب بأفضل جهد. توفر هذه الأنواع يعتمد على المراقب المفرط الأساسي. .P يُنشأ مقبس جديد باستخدام .P .in +4n .EX socket(AF_VSOCK, socket_type, 0); .EE .in .P عندما تريد عملية إنشاء اتصال، تستدعي \fBconnect\fP(2) مع عنوان مقبس وجهة معين. يُربط المقبس آليًا بمنفذ حر إذا كان غير مربوط. .P يمكن لعملية الاستماع للاتصالات الواردة عن طريق الربط أولاً بعنوان مقبس باستخدام \fBbind\fP(2) ثم استدعاء \fBlisten\fP(2). .P تُنقل البيانات باستخدام عائلات استدعاءات النظام \fBsend\fP(2) أو \fBwrite\fP(2) وتُستقبل البيانات باستخدام عائلات استدعاءات النظام \fBrecv\fP(2) أو \fBread\fP(2). .SS "تنسيق العنوان" يُعرف عنوان المقبس كتركيبة من معرف سياق (CID) 32 بت ورقم منفذ 32 بت. يحدد CID المصدر أو الوجهة، وهي إما آلة افتراضية أو المضيف. يميز رقم المنفذ بين خدمات متعددة تعمل على جهاز واحد. .P .in +4n .EX struct sockaddr_vm { sa_family_t svm_family; /* Address family: AF_VSOCK */ unsigned short svm_reserved1; unsigned int svm_port; /* Port # in host byte order */ unsigned int svm_cid; /* Address in host byte order */ unsigned char svm_zero[sizeof(struct sockaddr) \- sizeof(sa_family_t) \- sizeof(unsigned short) \- sizeof(unsigned int) \- sizeof(unsigned int)]; }; .EE .in .P يُضبط \fIsvm_family\fP دائمًا على \fBAF_VSOCK\fP. يُضبط \fIsvm_reserved1\fP دائمًا على 0. يحتوي \fIsvm_port\fP على رقم المنفذ بترتيب بايت المضيف. تُسمى أرقام المنافذ الأقل من 1024 \fIالمنافذ المميزة\fP. فقط عملية تمتلك قدرة \fBCAP_NET_BIND_SERVICE\fP يمكنها \fBbind\fP(2) لهذه الأرقام. يجب ملء \fIsvm_zero\fP بالأصفار. .P هناك عدة عناوين خاصة: \fBVMADDR_CID_ANY\fP (\-1U) يعني أي عنوان للربط؛ \fBVMADDR_CID_HYPERVISOR\fP (0) محجوز للخدمات المضمنة في المراقب المفرط؛ \fBVMADDR_CID_LOCAL\fP (1) هو العنوان المعروف للاتصال المحلي (الاسترجاع)؛ \fBVMADDR_CID_HOST\fP (2) هو العنوان المعروف للمضيف. .P الثابت الخاص \fBVMADDR_PORT_ANY\fP (\-1U) يعني أي رقم منفذ للربط. .SS "الترحيل المباشر" تتأثر المقابس بالترحيل المباشر للآلات الافتراضية. تصبح مقابس \fBSOCK_STREAM\fP المتصلة غير متصلة عندما ترحل الآلة الافتراضية إلى مضيف جديد. يجب على التطبيقات إعادة الاتصال عند حدوث ذلك. .P قد يتغير CID المحلي عبر الترحيل المباشر إذا لم يكن CID القديم متاحًا على المضيف الجديد. تُحدث المقابس المربوطة آليًا إلى CID الجديد. .SS Ioctls أوامر ioctl التالية متاحة على جهاز \fI/dev/vsock\fP. .TP \fBIOCTL_VM_SOCKETS_GET_LOCAL_CID\fP الحصول على CID للجهاز المحلي. الوسيطة هي مؤشر إلى \fIunsigned int\fP. .IP .in +4n .EX ioctl(fd, IOCTL_VM_SOCKETS_GET_LOCAL_CID, &cid); .EE .in .IP اعتبر استخدام \fBVMADDR_CID_ANY\fP عند الربط بدلاً من الحصول على CID المحلي باستخدام \fBIOCTL_VM_SOCKETS_GET_LOCAL_CID\fP. .SS "اتصال محلي" يوجه \fBVMADDR_CID_LOCAL\fP (1) الحزم إلى نفس المضيف الذي أنشأها. هذا مفيد لاختبار التطبيقات على مضيف واحد ولتصحيح الأخطاء. .P يمكن استخدام CID المحلي الذي تم الحصول عليه باستخدام \fBIOCTL_VM_SOCKETS_GET_LOCAL_CID\fP لنفس الغرض، لكن من الأفضل استخدام \fBVMADDR_CID_LOCAL\fP. .SH الأخطاء .TP \fBEACCES\fP غير قادر على الربط بمنفذ مميز بدون صلاحية \fBCAP_NET_BIND_SERVICE\fP. .TP \fBEADDRINUSE\fP غير قادر على الربط بمنفذ قيد الاستخدام بالفعل. .TP \fBEADDRNOTAVAIL\fP غير قادر على إيجاد منفذ شاغر للربط أو غير قادر على الربط بمعرف CID غير محلي. .TP \fBEINVAL\fP معاملات غير صالحة. يشمل ذلك: محاولة ربط مقبس مرتبط بالفعل، تقديم بنية \fIsockaddr_vm\fP غير صالحة، وأخطاء أخرى في التحقق من المدخلات. .TP \fBENOPROTOOPT\fP خيار مقبس غير صالح في \fBsetsockopt\fP(2) أو \fBgetsockopt\fP(2). .TP \fBENOTCONN\fP غير قادر على تنفيذ العملية على مقبس غير متصل. .TP \fBEOPNOTSUPP\fP العملية غير مدعومة. يشمل ذلك: العلم \fBMSG_OOB\fP غير المنفذ لعائلة استدعاءات النظام \fBsend\fP(2) والعلم \fBMSG_PEEK\fP لعائلة استدعاءات النظام \fBrecv\fP(2). .TP \fBEPROTONOSUPPORT\fP رقم بروتوكول مقبس غير صالح. يجب أن يكون البروتوكول دائماً 0. .TP \fBESOCKTNOSUPPORT\fP نوع مقبس غير مدعوم في \fBsocket\fP(2). فقط \fBSOCK_STREAM\fP و \fBSOCK_DGRAM\fP صالحان. .SH الإصدارات دعم VMware (VMCI) متاح منذ لينكس 3.9. KVM (virtio) مدعوم منذ لينكس 4.8. Hyper\-V مدعوم منذ لينكس 4.14. .P .\" commit ef343b35d46667668a099655fca4a5b2e43a5dfe \fBVMADDR_CID_LOCAL\fP مدعوم منذ لينكس 5.6. الاتصال المحلي في الضيف وعلى المضيف متاح منذ لينكس 5.6. الإصدارات السابقة دعمت فقط الاتصال المحلي داخل الضيف (ليس على المضيف)، ومع بعض الناقلات فقط (VMCI و virtio). .SH "انظر أيضًا" \fBbind\fP(2), \fBconnect\fP(2), \fBlisten\fP(2), \fBrecv\fP(2), \fBsend\fP(2), \fBsocket\fP(2), \fBcapabilities\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .