通过tcpclient对象发送ushort ulong字节数据

时间:2010-09-06 09:05:06

标签: c# send tcpclient short ushort

我在c#中的应用程序想要与第三方Tcp服务器联系以发送数据并收到回复消息...命令的语法包含UShort,ULONG,BYTE类型数据 我的应用程序需要发送的示例命令是

USHORT 0xFFFF
USHORT 0x00D0
BYTE   0xDD

然后在app中我将数据发送为

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

但返回值不是我要找的 我的代码向服务器发送数据有什么问题吗? 任何关于阅读写作数据的建议都是受欢迎的......

1 个答案:

答案 0 :(得分:0)

当他们不知道所采用的协议时,没有人可以告诉你响应有什么问题。服务器正在发送它,因为它感觉像...它可能是您的请求有问题,或者它可能是一条消息,表明它已脱机服务。您只能查看它如何解释它发送的结果的规范,或询问维护它的人。

使用您正在使用的语言标记此问题可能也是个好主意,因此人们可以了解函数调用以及是否正确调用它们。

我还建议使用数据包嗅探器(或在Linux上简单地使用)来显示正在读取和写入的数据包......你可能会看到那里的错误。然后,使用另一个程序与工作的服务器进行交互,并比较字节。