udp أو بروتوكول بيانات المستخدم هو بروتوكول بديل عن البروتوكول الشائع TCP وكلاهما يتم استخدامهما لنقل الحزم من جهاز إلى أخر ولكن يوجد فرق مهم يختلفان فيه حيث يقوم بروتوكول udp بنقل الحزم دون الحاجة إلى إجراء اتصالات أولية لإنشاء قنوات اتصال قبل بدء إرسال البيانات.
ولمزيد من المعلومات حول بروتوكول udp يرجى زيارة موقع ويكيبيديا.
في هذه التدوينة سنتكلم عن مقابس udp في بايثون وقبل البدء في هذا الدرس أنصحك بزيارة الدرس السابق حول برمجة مقابس في بايثون الخاصة ب tcp.
إنشاء مقبس udp
SOCK.DGRAM تعني مقبس udp .
إرسال واستقبال البيانات
بما أن مقابس udp هي مقابس غير متصلة سوف نقوم بالاتصال باستخدام كل من دالة المقبس sendto و recvfrom و هاتين الدالتين لا تطلب من المقبس أن يكون متصلا ببعض الأجهزة حتى يتم الإرسال فكل ما تحتاجه هو عنوان المرسل والمرسل اليه.
سيرفر udp
أبسط مثال لسيرفر udp يمكن كتابته في بضع أسطر :
قام سيرفر udp بفتح مقبس واستقبال البيانات الواردة الآن قم بتشغيل الكود السابق ثم قم بالاتصال بذلك السيرفر باستخدام الأمر nacat حيث يعتبر ncat بديل telnet وهو افضل منه
عند كتابة كلمة hello و ok ستظهر هاتين الكلمتين على سيرفر udp (شاهد شيل بايثون)
ولمزيد من المعلومات حول بروتوكول udp يرجى زيارة موقع ويكيبيديا.
في هذه التدوينة سنتكلم عن مقابس udp في بايثون وقبل البدء في هذا الدرس أنصحك بزيارة الدرس السابق حول برمجة مقابس في بايثون الخاصة ب tcp.
إنشاء مقبس udp
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
SOCK.DGRAM تعني مقبس udp .
إرسال واستقبال البيانات
بما أن مقابس udp هي مقابس غير متصلة سوف نقوم بالاتصال باستخدام كل من دالة المقبس sendto و recvfrom و هاتين الدالتين لا تطلب من المقبس أن يكون متصلا ببعض الأجهزة حتى يتم الإرسال فكل ما تحتاجه هو عنوان المرسل والمرسل اليه.
سيرفر udp
أبسط مثال لسيرفر udp يمكن كتابته في بضع أسطر :
import socket port = 5000 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(("", port)) print "waiting on port:", port while 1: data, addr = s.recvfrom(1024) print data
قام سيرفر udp بفتح مقبس واستقبال البيانات الواردة الآن قم بتشغيل الكود السابق ثم قم بالاتصال بذلك السيرفر باستخدام الأمر nacat حيث يعتبر ncat بديل telnet وهو افضل منه
ncat localhost 5000 -u -v$ (Ncat: Version 6.00 ( http://nmap.org/ncat Ncat: Connected to 127.0.0.1:5000 hello ok
ليست هناك تعليقات:
إرسال تعليق