现在的需求是编写的客户端发送一个命令请求,响应成功服务端返回多个数据报文(分开的数据报文),且返回的数据报文是不
固定的。所编写的客户端需要对接收到的每一个数据报文分开处理。
实现方式1:假设知道有多少个报文的情况下
ns.Write(byteData, 0, byteData.Length);
byte[] byteRecpt = new byte[1024];
ns.Read(byteRecpt, 0, byteRecpt.Length);
byte[] byteRecpt2 = new byte[1024];
ns.Read(byteRecpt2, 0, 1024);
byte[] byteRecpt3 = new byte[1024];
ns.Read(byteRecpt3, 0, 1024);
实现方式2:不知道多少个报文的代码,需另开启一条线程去接收
private void RecieveDatas()
{
while (true)
{
if (tcpClient == null || !tcpClient.Connected) return;
byte[] datas = new byte[1024];
ns.Read(datas, 0, 1024);
}
}
现在的问题是方式1不实际,方式2接收到的数据是所有的报文存到一起了。
而我需要的是服务返回第一个报文需要做处理,返回的第二个报文做不同的处理,返回的第三个报文可能又有不同处理。。。。
TCP&UDP测试工具 这个软件就能做分开处理,不管服务端返回多少报文,在显示报文数据的时候接收一条显示一条,而不是接
收完了才显示。