Skip to content

الفصل 25: الشبكات

مقدمة

مكتبة شبكة توفر إمكانيات التواصل عبر الشبكة: HTTP، TCP، WebSocket، وHTTP/2.

عميل HTTP

sad
استورد طلب_هتتب من "شبكة"
استورد جسون من "جسون"

# طلب GET بسيط
غير_متزامن دالة جلب_مستخدمين()
    متغير رد = انتظر طلب_هتتب.احصل("https://api.example.com/مستخدمين")
    متغير بيانات = جسون.فك(رد.النص)
    اطبع_سطر("عدد المستخدمين: " + طول(بيانات))
نهاية

طلب POST ببيانات

sad
استورد طلب_هتتب من "شبكة"
استورد جسون من "جسون"

غير_متزامن دالة إضافة_مستخدم(اسم، بريد)
    متغير جسم = جسون.ترميز({"اسم": اسم، "بريد": بريد})
    متغير رد = انتظر طلب_هتتب.نشر(
        "https://api.example.com/مستخدمين"،
        جسم،
        {"نوع_المحتوى": "application/json"}
    )
    اطبع_سطر("الحالة: " + رد.الحالة)
نهاية

خادم TCP

sad
استورد خادم_TCP من "شبكة"

دالة خادم_صدى()
    متغير خادم = جديد خادم_TCP("0.0.0.0"، 8080)
    اطبع_سطر("الخادم يستمع على المنفذ 8080...")

    بينما (صحيح)
        متغير اتصال = خادم.اقبل()
        متغير بيانات = اتصال.اقرأ()
        اتصال.اكتب("صدى: " + بيانات)
        اتصال.أغلق()
    نهاية
نهاية

WebSocket

sad
استورد خادم_WS من "شبكة"

متغير خادم = جديد خادم_WS(8081)، العملاء = []

خادم.عند_اتصال = دالة(عميل)
    العملاء = العملاء + [عميل]
نهاية

خادم.عند_رسالة = دالة(عميل، رسالة)
    # بث لجميع العملاء
    لكل ع في العملاء
        ع.ارسل("بث: " + رسالة)
    نهاية
نهاية

خادم.ابدأ()

جدول بروتوكولات الشبكة

البروتوكولالاستخدامالسرعة
HTTPطلبات ويبمتوسط
TCPنقل بيانات عامسريع
WebSocketاتصال ثنائيفوري

تمرين

اكتب برنامجاً يجلب أخبار الطقس لمدينة معينة من API عام ويعرضها بشكل منظم.

مُرخَّص بموجب رخصة MIT