簡體   English   中英

通過tcpclient對象發送ushort ulong字節數據

[英]sending ushort ulong byte data over tcpclient object

我在C#中的應用程序希望與第三方Tcp服務器一起發送數據並接收回響應消息...命令的語法具有UShort,ULONG,BYTE類型的數據,這是我的應用程序需要發送的示例命令是

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..

但是返回值不是我要查找的,所以我在向服務器發送數據的代碼上有什么錯誤嗎? 歡迎閱讀書寫數據方面的任何建議...

當他們不知道所使用的協議時,沒人能告訴您響應出了什么問題。 服務器正在發送該郵件,因為感覺很...您的請求可能有問題,或者可能是一條消息,指示它已脫機進行服務。 您只能檢查其說明,以解釋其發送的結果,或者詢問維護它的人員。

最好用您使用的語言來標記這個問題,這樣人們就可以理解函數調用以及您是否正確調用了它們。

我還建議使用數據包嗅探器(或在Linux上簡單地使用strace)來顯示正在讀取和寫入的數據包...您可能會在那里看到錯誤。 然后,使用另一個程序與可以正常工作的服務器進行交互,並比較字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM