|
رد: شرح Winsock
حتي نفهم عمل السوكت علينا ان نفهم شيئ مهم جدا في التعامل مع الفايلات في اللينكس وهو الfile descriptor ,i وهو عباره عن رمز نتعامل من خلاله علي الفائل المعني داخل العمليه المعنيه او بطريقه اخري ان كل فائل نريد ان نفتحه لاي غرض من الاغراض نكون قد اخذنا قيمه عدد صحيح يرمز الي الفائل مثلا.
int fd=open("/root/bin/test.c" , 0,O_RDONLY); open command فنحن في اي عمليه اخري علي الفائل الذي فتحناه بالعباره السابقه من اجل الكتابه علينا استخدام المتغير fd مثلا read(fd, buffer, nbyte);//read command
الامثله السابقه للتوضيح فقط .
سادلف مباشره في System call المقصوده عندما نطلق كلمت socket system call>
اولا لدينا
socket() system call;
لنقوم باي عمليه ادخال او اخراج في نتويرك علينا استخدام نداء النظام هذا وفي كل الحالات
int socket(int family, int tybe, int protocol); ,وهي موجوده في ال<sys/types.h> & <sys/socket.h>
اولا : لماذا يعرف السوكت علي اساس انه يرجع قيمة int ونقول لانه يرجع قيمه ال socket descriptor كما اسلفنا وهو اشبه بنداء النظام open(); الي حد كبير .
ثانيا ماهو ال familiy : وهو ياخد واحد من عدة خيارات ولكن القيمه المعتاده هي AF_INET زمقصود بها بها protocol sute التي ستستخدم.
ثالثا type :ولها عدة خيارات اهمهم واشهرهم اثنين sock_stream وهو مثل ال TCP او هناك خيار اخر شائع وهو SOCK_DGRAM ومثال له ال UDP والشرح هنا يطول ولكن نكتفي بالتوضيح السابق.
رابعا protocol : وغالبا ما ياخذ قيمة 0 الا في حالات خاصه جدا .
......
وشكرا . ارجو ان يكون الشرح وافي
طبعا اكيد هناك بقيه وظائف نظاميه في اطار اكمال مهمة السوكت. والكلام فيها يطول . سواء النظري او العملي . ................
هناك في النت كثير من الامثله والبرامج يمكنك ايضا البحث فيها ومحاوله استخلاص اغراضك.
ساواصل الشرح فيما بعد علي اني انتر رايك ومدي استفادتك انت او اي احد اخر مهمتم .
|