الثلاثاء، 13 يناير 2015

برمجة مقبس udp في بايثون

udp أو بروتوكول بيانات المستخدم هو بروتوكول بديل عن البروتوكول الشائع TCP وكلاهما يتم استخدامهما لنقل الحزم من جهاز إلى أخر ولكن يوجد فرق مهم يختلفان فيه حيث يقوم بروتوكول 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
  

عند كتابة كلمة hello و ok ستظهر هاتين الكلمتين على سيرفر udp (شاهد شيل بايثون)

 


ليست هناك تعليقات:

إرسال تعليق

جلب البيانات من صفحة ويب باستخدام Selenium

  في هذا الدرس، سننشئ أداة لاستخراج البيانات من أي موقع ويب باستخدام Selenium. Selenium هو مشروع مفتوح المصدر يستخدم لأتمتة المتصفحات. وهو ي...