سؤال

يريد طلبي في C# أن يتوافق مع خادم TCP من طرف ثالث لإرسال البيانات وتلقي رسائل الاستجابة الظهر ... بناء جملة الأوامر لها بيانات عينة من نوع البايت ، وهو أمر مطلوب لإرساله بواسطة تطبيقي

USHORT 0xFFFF
USHORT 0x00D0
BYTE   0xDD

ثم في التطبيق أرسل البيانات كـ

  TcpClient tcpClient = new TcpClient();
       tcpClient.Connect("XX.XX.XX.XX",portnumber);

       Networkstream ns=tcpClient.GetStream();
       StreamWriter sw=new StreamWriter(ns);
       sw.Write(0xFFFF);
       sw.Write(0x00DD);
       sw.Write(0x00);

// أو أرسلهم بايت

     sw.Write(0xFF);
       sw.Write(0xFF);
       sw.Write(0x00);
       sw.Write(0xD0);
       sw.Write(0x00);
       sw.Write(0x00);

وأقرأ الرسائل الواردة عبر الخادم

  while (true)
               {

                    byte[] buff=new byte[tcpClient.ReceiveBufferSize];
                    ns.Read(buff, 0, tcpClient.ReceiveBufferSize);
                 string dv= BitConverter.ToString(buff));
                }
//returned data looks like FF-A2-00-23-00-02-00-00-00-00-00-00-D9-2E-20-2E-00-A0-04-00-AE-08
//yes i know this byte syntaxes but returning data is not that i look response for command that i sent..

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

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

المحلول

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

قد تكون أيضًا فكرة جيدة لوضع علامة على هذا السؤال باللغة التي تستخدمها ، بحيث يمكن للناس فهم مكالمات الوظائف وما إذا كنت تستدعيها بشكل صحيح.

أوصي أيضًا باستخدام حزمة Sniffer (أو على Linux ببساطة Strace) لإظهار الحزم التي يتم قراءتها وكتابتها ... من المحتمل أن ترى الأخطاء هناك. بعد ذلك ، استخدم برنامجًا آخر للتفاعل مع الخادم الذي يعمل ، ومقارنة البايت.

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