🌐 تمارين الشبكة (30 تمرين)
تمارين عملية للتعامل مع الشبكات والاتصالات في لغة ص. تشمل بروتوكولات TCP/UDP، خوادم بسيطة، وتطبيقات شبكية.
الحصول على اسم الجهاز
اكتب برنامجاً يطبع اسم الجهاز الحالي على الشبكة.
💡 تلميح
استخدم دالة اسم_الجهاز()
📝 عرض الحل
فحص عنوان IP
اكتب دالة تتحقق من صحة عنوان IP (4 أجزاء مفصولة بنقاط، كل جزء 0-255).
💡 تلميح
قسّم العنوان بالنقطة وتحقق من كل جزء
📝 عرض الحل
تحليل عنوان URL
اكتب دالة تستخرج البروتوكول والمضيف والمسار من عنوان URL.
💡 تلميح
قسّم العنوان بـ :// أولاً ثم بـ /
📝 عرض الحل
بناء سلسلة استعلام
اكتب دالة تحوّل خريطة معاملات إلى سلسلة استعلام URL.
💡 تلميح
كرر على المفاتيح واربط بـ & بينها
📝 عرض الحل
حساب CIDR
اكتب دالة تحسب عدد العناوين المتاحة من تدوين CIDR.
💡 تلميح
العدد = 2 أس (32 - طول البادئة)
📝 عرض الحل
تحويل المنفذ لنص الخدمة
اكتب دالة تحوّل رقم المنفذ الشائع إلى اسم الخدمة.
💡 تلميح
استخدم خريطة تربط أرقام المنافذ بأسماء الخدمات
📝 عرض الحل
فحص عنوان MAC
اكتب دالة تتحقق من صحة عنوان MAC (6 مجموعات من رقمين ست عشري).
💡 تلميح
قسّم بـ : وتحقق أن كل جزء طوله 2
📝 عرض الحل
محلل رأس HTTP (إسلامي: أوقات الصلاة)
اكتب دالة تحلل رؤوس HTTP النصية وتستخرج منها خريطة. طبّقها على استجابة API أوقات الصلاة.
💡 تلميح
قسّم كل سطر بـ ": " والمفتاح قبلها والقيمة بعدها
📝 عرض الحل
مولد عناوين IP (إسلامي: شبكة مسجد)
اكتب دالة تولد قائمة عناوين IP في شبكة فرعية معينة لتوصيل أجهزة المسجد.
💡 تلميح
زد الجزء الأخير من العنوان تدريجياً
📝 عرض الحل
محاكي DNS بسيط
اكتب محاكي DNS يحوّل أسماء نطاقات إلى عناوين IP من جدول محلي.
💡 تلميح
استخدم خريطة كجدول DNS محلي
📝 عرض الحل
حساب قناع الشبكة
اكتب دالة تحوّل طول بادئة CIDR إلى قناع شبكة بتدوين النقاط.
💡 تلميح
كل 8 بتات تعطي 255، والباقي يُحسب بـ 256 - 2^(8-الباقي)
📝 عرض الحل
مسجّل طلبات الشبكة
اكتب نظام تسجيل (Logger) لطلبات الشبكة يحفظ الطريقة والعنوان والوقت.
💡 تلميح
خزّن كل طلب كخريطة في مصفوفة
📝 عرض الحل
منسّق حجم البيانات
اكتب دالة تحوّل حجم البيانات بالبايت إلى صيغة مقروءة.
💡 تلميح
اقسم على 1024 كل مرة حتى يصبح الرقم أقل من 1024
📝 عرض الحل
نظام محادثة بسيط (إسلامي: مجموعة تحفيظ)
اكتب نموذجاً لنظام محادثة بسيط يمثل مجموعة تحفيظ القرآن.
💡 تلميح
خزّن كل رسالة كخريطة في مصفوفة مركزية
📝 عرض الحل
فحص سرعة الشبكة
اكتب محاكي لفحص سرعة الشبكة يحسب السرعة من حجم البيانات والوقت.
💡 تلميح
الميجابايت = 8 ميجابت
📝 عرض الحل
نظام تقييد الطلبات (Rate Limiter)
اكتب نظام تقييد يسمح بعدد محدد من الطلبات في فترة زمنية.
💡 تلميح
استخدم عدّاداً لكل عنوان IP
📝 عرض الحل
تشفير/فك تشفير Base64 للشبكة
اكتب دالة ترميز وفك ترميز بيانات الشبكة بصيغة Base64.
💡 تلميح
استخدم الدوال المدمجة ترميز_قاعدة64 وفك_قاعدة64
📝 عرض الحل
محلل سجلات الخادم
اكتب دالة تحلل سجلات خادم ويب وتستخرج إحصائيات.
💡 تلميح
صنّف السجلات حسب كود الحالة وعنوان IP
📝 عرض الحل
بروتوكول مسلسل بسيط
اكتب زوج دوال لتسلسل وفك تسلسل بيانات بصيغة مخصصة.
💡 تلميح
استخدم فاصلاً مثل | بين العناصر و: بين المفتاح والقيمة
📝 عرض الحل
نظام إشعارات شبكي (إسلامي: إشعارات الأذان)
اكتب نظام إشعارات يرسل تنبيهات مواقيت الصلاة لقائمة مشتركين.
💡 تلميح
لكل مشترك أنشئ إشعاراً وأضفه للقائمة
📝 عرض الحل
جدار حماية بسيط
اكتب نظام جدار حماية بسيط يسمح أو يمنع الاتصالات حسب القواعد.
💡 تلميح
كرر على القواعد وطابق المنفذ ثم نوع القاعدة
📝 عرض الحل
موازن أحمال (Load Balancer)
اكتب موازن أحمال يوزع الطلبات على خوادم متعددة بالتناوب.
💡 تلميح
استخدم فهرساً يزداد ويعود للصفر بعد آخر خادم (%)
📝 عرض الحل
نظام REST API (إسلامي: مكتبة الأحاديث)
اكتب محاكي لـ REST API لإدارة مكتبة أحاديث نبوية.
💡 تلميح
استخدم شروطاً للطريقة والمسار وطبّق العمليات المناسبة
📝 عرض الحل
نظام توجيه (Router)
اكتب نظام توجيه يربط مسارات URL بمعالجات.
💡 تلميح
استخدم خريطة حيث المفتاح هو "طريقة:مسار" والقيمة دالة
📝 عرض الحل
ذاكرة تخزين مؤقت (Cache)
اكتب نظام تخزين مؤقت LRU بسيط للشبكة.
💡 تلميح
عند تجاوز الحد، احذف العنصر الأقدم (الأول في الترتيب)
📝 عرض الحل
نظام اشتراك/نشر (Pub/Sub)
اكتب نظام اشتراك/نشر بسيط للرسائل بين مكونات الشبكة.
💡 تلميح
استخدم خريطة من القنوات، كل قناة تحتوي مصفوفة مشتركين
📝 عرض الحل
محاكي ARP
اكتب محاكياً لبروتوكول ARP يربط عناوين IP بعناوين MAC.
💡 تلميح
استخدم خريطة لربط IP بـ MAC مع وقت الإضافة
📝 عرض الحل
نظام مراقبة الشبكة
اكتب نظام مراقبة يتتبع حالة خوادم متعددة ويرسل تنبيهات.
💡 تلميح
تتبع عدد الفحوصات الفاشلة وأرسل تنبيهاً عند تجاوز الحد
📝 عرض الحل
محاكي بروتوكول WebSocket
اكتب محاكياً لاتصال WebSocket ثنائي الاتجاه.
💡 تلميح
استخدم خريطة للاتصالات مع مصفوفة رسائل لكل اتصال
📝 عرض الحل
نظام شبكة P2P (إسلامي: شبكة تبادل الكتب)
اكتب نظام شبكة نظير لنظير لتبادل الكتب الإسلامية بين المساجد.
💡 تلميح
كل عقدة (مسجد) لديها قائمة كتب، والبحث يكرر على جميع العقد المتصلة