مفهوم Winsock:
Winsock أو windows socket عبارة عن وسيلة للتواصل بين مختلف الأجهزة أو الحواسيب وهي الوسيلة الوحيدة للتواصل لدي مختلف أنضمة التشغيل عبر الشبكة حيت يمكن لليونكس التواصل مع الويندوز.
ضهرت socket أول مرة مع اليو نكس.ومنه أخدت الويندوز المفهوم.والسوكت تستعمل بكثرة بروتوكول TCP/IP.حيت تشتغل في الطبقة العالية للشبكة (the higher network layers).
والsocket بنفسه لا يهتم يكمية البينات التي تمر عبره.هو فقط يعمل عمله في الأرسال واستقبال البينات بين الجهازين المتصلين.
أنواع السوكت Types of Socket :
هناك نوعان فقط من السوكت وهما stream socket و datagram socket .النوع stream socket يحتاج الي عمل اتصال قبل ارسال أي بينات وهو لا يضيع أي بينات يقوم باررسال البينات مقسمة الي عدة حزمات Packets وادا فشلت احداهما في الإرسال سوف يتوقف عملية الإرسال وسوف يقطع الأتصال بين الجهازين المتصلين.وعادة يستخدم هدا النوع في ارسال الملفات الهامة كالبرماج لكي تتم عملية استقبالها بشكل صحيح.لتفادي وجود ضياع للبيتات.
أما النوع التاني datagram socket فهو لا يهمه ان ان اتصلت مع الجهاز الأخر هو فقط يعرف ارسال البينات الي الجهاز ولا يهتم بوصول جميع البيتات .وقد يرسل نفس البينات عدة مرات ولكنه أسرع مقارنتا مع الأخر.بروتوكولات ال HTML و FTP وبعض الأخر يستعملون stream socket وأما النوع الأخر فيستعملونه في ارسال الصور المباشرة أو الفيديو المباشر ك Webcam.
ربما واجهت مرة مشكلة في تقاطع الفيديو وضهور بعض التشويش وهنا أتي دلك التشويش وربما تري صورة وبعد دلك تري أجزائها .
يمكنك تخيل النوع stream كأنه عميلية التواصل عبر الهاتف أولا تقوم بالتواصل مع الطرف الأخر تم بعد قبول الأتصال يتم عملية المحادثة (الإستقبال) وادا حدت أي خطأ تعلم به وبعد دلك تأخد الأحطياتات التي تريد.
هناك طرفان لابد من وجوجهم في عملية الأتصال الطرف الأأول هم Server حيت يفوم بعملية الاستماع ويستقبل الأتصالات من الطرف الأخر ألا وهو Client هو عبراة عن برنامج يقوم بالإتصال مع السرفر ويتبادلو البينات.و Client عند استعمل بروتوكول HTTP هو المتصفح Browser كفاير فوكس العزيز.
ترتيب البيتات Byte Ordering :
بما أننا سوف نتعامل مع عناوين IP في winsock programming,لدلك علينا أن ندرك كيف يتم ترتيب بينات هدا العنوان.هناك نوعان من الترتيب big Endian و little Endian.في النوع ل Big Endian يتم ترتيب البينات كما هي في الرقم IP والنوع الأخر يتم عكس Big Endian.
متال توضيحي:
لنفترض أننا لدينا العناون التالي:205.34.67.24 في الترتيب Big Endian سوف يصبح العناوين كما يلي:
24 67 34 205
لكن النوع little Endian سوف يصبح العكس:
205 34 67 24
معالجات Intel تستعمل little Endian والمعالجات الأخري كموتولرولا تستعمل النوع الأخر لدلك لا تنسي تحويل العناوين أولا قبل استعمالها ادا كنت تستعمل معالجات ك intel.
---هنا بعض الدوال التي تحول النوعين------
أنماط السوكت:
هناك نمطين يمكن دوال السوكت العمل عليه Blocking Mode و none-Blocking Mode في الأصل كانت اليونكس تعمل فقط بالBlocking Mode حيت أتناء استعمال أي دالة للتواصل لا يتم الارجاع منها حتي تكمل عملها متلا عندما أقوم أنا بتصفح موقع معين وسبقتك أنت بتصفحه هدا الموقع لن يعود اليك حتي يقوم بارسال جميع البينات الي تم يقطع الإتصال بيننا تم بعد دلك يعود اليك وهكدا...
وفي الوقت الدي يكون فيه البرنامج بانتضار اكتمال البينات أو استقبال اتصال من remote socket
سوف يضهر في البرنامج متجمد. ولا يمكنك فعل أي شيئ أخر في البرنامج وبمعني أخر لن يقوم بأي عمل أخر حتي يقوم باكتمال المهمة.وهدا غير مقبول في نضام التشغيل ويندوز حيت وضع الويندوز مجموعة من الدوال للمستخدم للتعامل مع none-Blocking Mode وكدلك مع النوع الأخر ولكن من الأحسن التعامل مع none-Blocking Mode قدر الامكان. للحصول علي نتائج أحسن من استعمال النمط الأخر.
البوابات أو المنافد Ports :
عندما تنشئ سوكت وتقوم بعملية الإتصال مع remote socket عليك أن تحدد من أي منفد تريد الإتصال معه أو يمكن القول مع أي برنامج تريد التواصل في دلك الجهاز.المنافد هنا ليس كمنافد الأدخال والأخراج كCOM1...المنافد في winsock programming هي عبارة عن أرقام تستعمل غالبا في تحديد نوع البروتوكول حيت أن بروتوكول HTTP يستعمل منفده الإفتراضي 80 ويمنك كدلك استعمال منافد أخري.و FTP يستعمل المنفد 21 .
لتحميل الدرس علي شكل كتاب اضغط هنا:
الي هنا ينتهي هدا الجزء ونلتقي أن شاء الله في الدرس القادم .
وأرجو أن تصححوا لي أي خطأ وقعت فيه الي اللقاء☺.
Iczelion's Guide to Winsock Programming
