[英]Does C# have a way to write an object with int fields (byte, ushort, ulong, etc.) as a byte array?
[英]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.