هل هناك أي مقالات أو نصائح حول إنشاء خادم دردشة C++ مع عميل C#؟

StackOverflow https://stackoverflow.com/questions/807846

  •  03-07-2019
  •  | 
  •  

سؤال

يخطط صفي الحالي لإنشاء لعبة أساسية متصلة بالشبكة، لكننا قررنا تولي مهمة إنشاء خادم C++ مع عميل C#.أدرك أن هذه ربما تكون مهمة صعبة، ولكني أتساءل عما إذا كانت هناك أي نصيحة حول تحقيق ذلك.

أنا آسف ليس لدي أي معلومات أكثر من هذه.لقد بدأنا للتو ونريد فقط التأكد من أن هذا ممكن خلال الفترة الزمنية المتاحة لنا.

هل كانت مفيدة؟

المحلول

وهذا يعمل بشكل جيد. C # و C ++ كل من الاتصالات دعم TCP و UDP شبكة، في العديد من النكهات. إما أن تعمل بشكل جيد للعميل أو الخادم.

والقضايا الرئيسية التي سوف تحتاج لمراقبة وتحديد كيفية نقل البيانات الخاصة بك، والتأكد من أن أية حزم الذي يمر عبر السلك هي متسلسلة / إلغاء تسلسل بنفس الطريقة.

وهذا من شأنه أن يكون أكثر بساطة لو كنت لاستخدام نفس اللغة (أو على الأقل المكتبات) على كلا الجانبين، أي: إذا كنت تستخدم C ++ / CLI لخادم، وتمسك مع بعض من نفس الأدوات. NET تمكن للعمل مع نقل البيانات.

نصائح أخرى

إنها في الحقيقة ليست مشكلة كبيرة - طالما أنك توصلت إلى بروتوكول جيد.لا تهتم البتات الموجودة على السلك باللغة المستخدمة لكتابة البرنامج الذي يفسرها.

بالبروتوكول أعني أنك بحاجة إلى فهم واضح لمن يجب أن يفعل ما عندما يقول ، وماذا يمكن توقعه.

على سبيل المثال، قد يتوقع خادم الصدى وعميله ذلك

  • العميل يتحدث أولا
  • يوجد معرف مفهوم جيدًا لتحديد نهاية إدخال العميل
  • سينتظر العميل حتى يستجيب الخادم قبل التحدث مرة أخرى
  • يوجد معرف مفهوم جيدًا لتحديد نهاية إخراج الخادم.

وما إلى ذلك وهلم جرا.لن يعمل عميل مختلف أرسل طول الرسالة قبل الرسالة بدلاً من استخدام معرف نهاية الإدخال مع الخادم الأصلي، بسبب عدم توافق البروتوكول.

يمكن أن تكون البروتوكولات مرنة، ولكن عليك أن تأخذ في الاعتبار هذه المرونة في البروتوكول نفسه.

وكما قال الجميع، هذه ليست قضية على الإطلاق إذا كان بروتوكول الدردشة مصممة تصميما جيدا. إلا إذا كنت تستخدم الخارقة مثل استخدام BinaryFormatter تسلسل مباشرة كائنات CLR على السلك هل لديك مشكلة ...

وأنصح لك استخدام بروتوكولات القائمة (مثل IRC) و / أو مكتبات لدرجة أنك المسموح بها.

إذا كان يعمل فقط في مجال Windows واحد، قد تفكر في DCOM. خلاف ذلك، كنت اذهب لخدمات الويب (SOAP أدوات لC ++) أو ربما REST.

لبرنامج دردشة، حاول استخدام بروتوكول الدردشة.

XMPP و معرفة ما إذا كان يمكنك استخدامها، أو إصدار خفض. بدءا من ما برزت آخرون إلى أبدا فكرة سيئة. على الأقل تستطيع أن ترى ما لا أحب حول هذا الموضوع. :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top