سؤال

لقد حصلت على كود C# الذي يقوم بتعيين العمليات لعناوين IP، وأحاول بشكل أساسي كتابة بعض البرامج التي ستنظر في العملية وتعطيني عنوان IP حتى أتمكن من كتابة شاشة تسمح للأصدقاء بالعثور عليها. في الألعاب.

عند تشغيل التطبيق الخاص بي، على الرغم من أنه يكتشف أن عملية اللعبة بها اتصال UDP، لكن يبدو أنه لا يمكنني الحصول على عنوان IP.

لقد قمت بتشغيل packetsniffer وظهر 78.111.229.123:32000 على جهاز التوجيه/البوابة ولكنه لا يظهر في تطبيقي.

هل هناك أي أفكار لتحفيزي على العمل؟

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

المحلول

كيف تقوم بإعداد المقبس في تطبيق اللعبة؟هل يمكنك نشر مثال على رمز إعداد المقبس الخاص بك؟

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

سؤال آخر:هل تحاول اكتشاف عنوان IP المحلي أو عنوان IP البعيد أو كليهما؟

إذا كنت تحاول اكتشاف عنوان IP البعيد، فقد يكون هذا مستحيلًا إلا إذا كان تطبيق اللعبة يستخدم ما يعرف بـ مآخذ UDP متصلة.هذا هو المكان الذي تتصل فيه مكالمات تطبيق العميل بمقبس UDP لإنشاء ارتباط بين المقابس المحلية والبعيدة في نظام التشغيل الأساسي.وهذا له مزايا وعيوب معينة كما هو موضح في الرابط أعلاه.

يحرر

ألق نظرة على منشور SO هذا: PID من رقم المقبس على نظام التشغيل Windows؟

وهذا يؤكد إلى حد كبير ما فكرت به - ما لم تكن اللعبة تستخدم مآخذ توصيل UDP متصلة، فإن الطريقة الوحيدة التي ستتمكن من الحصول على العنوان البعيد هي عبر استنشاق الحزم.

بدء اللعبة وتشغيلها netstat -ap UDP - إذا رأيت أنه لا توجد أية عناوين بعيدة مدرجة، فهذا من شأنه أن يؤكد الشكوك المذكورة أعلاه.

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