Chops Net IP هي مكتبة C ++ التي تجعل برمجة الشبكات غير المتزامنة متعة. أو على الأقل إن لم يكن ممتعًا ، فإنه يجعل برمجة الشبكة أسهل وأكثر أمانًا ، دون التضحية بالأداء بشكل كبير. Chops Net IP يتولى اتصالات بروتوكول الإنترنت (IP) بما في ذلك البث المتعدد TCP و UDP و UDP. يتم كتابته باستخدام تعبيرات تصميم C ++ الحديثة وأحدث (2017) C ++.
لا يشبه Chops Net IP أي مكتبة مقبس C ++ ذات الغرض العام.
يتم طبقة Chops Net IP أعلى مكتبة الشبكات غير المتزامنة ASIO ، مع الاستفادة من قابلية النقل والوظائف التي توفرها ASIO. ومع ذلك ، فإنه يبسط برمجة الشبكة مقارنة بالترميز مقابل ASIO API ، مع توفير قابلية للتوسع بسهولة من خلال المرافق غير المتزامنة.
حالة بناء Travis CI:
الفرع الرئيسي | تطوير فرع |
الإجراءات github ci بناء حالة:
أحدث علامة:
الإصدار 1.0 قيد التطوير اعتبارًا من يناير 2020 ، في انتظار تحسينات CMAKE ، وتعليمي شامل ، واختبار إضافي ضمن مجموعات ومجموعات متعددة.
ملاحظات الإصدار وخطط التطوير القادمة متوفرة هنا.
يتم توزيع هذا المشروع بموجب ترخيص برنامج Boost:
بالنسبة للعديد من مطوري البرامج ، فإن برمجة الشبكة غير المتزامنة في C ++ ليست سهلة. إنه معقد ، ويحتوي على العديد من المزالق ، ويتطلب تصميم رمز C ++ بطريقة غير طبيعية ، حتى بالنسبة لأولئك الذين لديهم سنوات من الخبرة. Chops Net IP ("C" onnective "h" andcrafted "op" enwork "s" s of the ، الشبكات عبر بروتوكول الإنترنت) يبسط برمجة الشبكة غير المتزامنة ويوفر تجريدات مفيدة (ولذيذة!) لأنماط الاتصالات العديدة.
تم تصميم Chops Net IP على رأس مكتبة ASIO الخاصة بـ Chris Kohlhoff (انظر المراجع) مما يتيح أن يكون محمولًا عبر العديد من المجمعين والمنصات. عندما يتم توحيد C ++ Networking TS (ربما C ++ 23 ، ولكن على الأرجح C ++ 26) ، ستستخدم IP Net IP مباشرة مرافق الشبكات في المكتبة القياسية C ++.
يقوم Chops Net IP بتبسيط رمز التطبيق الذي يعالج البيانات على اتصالات TCP متعددة في وقت واحد أو نقاط نهاية UDP. جميع عمليات Net Net IP (من وجهة نظر التطبيق) ليست لديك (أي لا توجد طرق حظر) ويتم تنفيذ جميع عمليات معالجة الشبكة بشكل غير متزامن.
تقطيع وظائف IP NET:
تم تصميم Chops Net IP لجعله سهلاً وفعالًا للتطبيق لإنشاء المئات (أو الآلاف) من اتصالات الشبكة والتعامل معها في وقت واحد. على وجه الخصوص ، لا توجد مؤشرات ترابط أو تجمعات مؤشرات ترابط داخل Chops Net IP ، ويعمل بشكل جيد مع مؤشر ترابط تطبيق واحد فقط يستدعي حلقة الحدث (منفذا ، في مصطلحات C ++ الحالية).
مثال على البيئات التي يكون فيها IP Net IP مناسبًا:
مثال على البرامج التجريبية في دليل /example .
يحتوي برنامج simple_chat_demo.cpp على قائمة بخطوات متعددة لإعداد مثال عمل.
نظرة عامة مفصلة ، ومقارنة مكتبة C ++ Socket ، والأسئلة الشائعة متاحة هنا.
C ++ 17 هو خط الأساس الأساسي لهذا المستودع. ملاحظات إضافية حول البدائل المحتملة متوفرة هنا.
التبعيات الخارجية الإنتاج:
asio من كريس كولهوف مطلوب. لاحظ أنها مكتبة ASIO المستقلة ، وليس إصدار ASIO Boost.utility-rack ، وهي مستودع في نفس حساب GitHub مثل Chops Net IP.اختبار التبعيات الخارجية:
Catch2 Phil Nash مطلوبة لجميع سيناريوهات الاختبار. هناك رؤوس ملفات واحدة تم نسخها في الدليل third_party لمستودع utility-rack من مختلف مستودعات Github ولا تتطلب أي إدارة تبعية خارجية. هذه هي:
expected-lite .انظر المراجع للحصول على تفاصيل إضافية.
تم تجميع Chops Net IP وتشغيل الاختبارات:
اتبع روابط CI لبيئات البناء الإضافية.
Chops Net IP هو رأس فقط ، لذلك يتكون التثبيت من تنزيل أو استنساخ التحويل البرمجي ويتضمن مسارات بشكل مناسب. لا يتم تعريف وحدات الماكرو للتكوين وقت الترجمة.
راجع المراجع للحصول على تفاصيل عن التبعيات والإلهام لـ Chops Net IP.
معلومات عضو الفريق متوفرة هنا.
تتوفر بعض "ملاحظات الجرف" هنا.