netcode هو بروتوكول عميل/خادم آمن مبني على UDP.
إنه مخصص للاستخدام من خلال الألعاب متعددة اللاعبين في الوقت الفعلي، والتي تحتاج إلى بروتوكول موجه للاتصال ولكن بدون رأس حظر الخط الخاص بـ TCP.
يحتوي netcode على الميزات التالية:
netcode مستقر وجاهز للإنتاج.
ابدأ بإنشاء مفتاح خاص عشوائي بحجم 32 بايت. لا تشارك مفتاحك الخاص مع أي شخص .
وعلى وجه الخصوص، لا تقم بتضمين مفتاحك الخاص في ملف العميل القابل للتنفيذ!
فيما يلي اختبار للمفتاح الخاص:
static uint8_t private_key [ NETCODE_KEY_BYTES ] = { 0x60 , 0x6a , 0xbe , 0x6e , 0xc9 , 0x19 , 0x10 , 0xea ,
0x9a , 0x65 , 0x62 , 0xf6 , 0x6f , 0x2b , 0x30 , 0xe4 ,
0x43 , 0x71 , 0xd6 , 0x2c , 0xd1 , 0x99 , 0x27 , 0x26 ,
0x6b , 0x3c , 0x60 , 0xf4 , 0xb7 , 0x15 , 0xab , 0xa1 };
إنشاء خادم بالمفتاح الخاص:
char * server_address = "127.0.0.1:40000" ;
struct netcode_server_config_t server_config ;
netcode_default_server_config ( & server_config );
memcpy ( & server_config . private_key , private_key , NETCODE_KEY_BYTES );
struct netcode_server_t * server = netcode_server_create ( server_address , & server_config , time );
if ( ! server )
{
printf ( "error: failed to create servern" );
return 1 ;
}
ثم ابدأ تشغيل الخادم بعدد فتحات العميل التي تريدها:
netcode_server_start ( server , 16 );
لتوصيل عميل، يجب أن يقوم عميلك بضرب REST API على الواجهة الخلفية لديك والتي تقوم بإرجاع رمز اتصال مميز .
يؤدي استخدام رمز الاتصال إلى تأمين الخادم الخاص بك بحيث لا يتمكن سوى العملاء المصرح لهم باستخدام الواجهة الخلفية الخاصة بك من الاتصال.
netcode_client_connect ( client , connect_token );
بمجرد اتصال العميل بالخادم، يتم تعيين فهرس العميل ويمكنه تبادل الحزم المشفرة والموقعة مع الخادم.
لمزيد من التفاصيل، يرجى الاطلاع على client.c وserver.c
يحتوي هذا المستودع على تنفيذ netcode في C.
تتضمن تطبيقات netcode الأخرى ما يلي:
إذا كنت ترغب في إنشاء تطبيق خاص بك لـ netcode، فيرجى قراءة معيار netcode 1.02.
هؤلاء الناس رائعون:
شكرا لمساهماتك في netcode!
مؤلف هذه المكتبة هو جلين فيدلر.
تشمل المكتبات الأخرى مفتوحة المصدر لنفس المؤلف: موثوقة، وتسلسلية، ويوجيمبو.
إذا وجدت هذا البرنامج مفيدًا، فيرجى التفكير في رعايته. شكرًا!
ترخيص BSD 3-بند.