小弟现在在帮老师做任务,制作一个中间服务器,多客户端连接服务器,服务器再根据数据库内容连接对应客户端的终端机器,现在其他部分都完成了,数据通信这块有些问题,以下是我的通讯程序:
int bytes=0;
streamToServer=client.GetStream();
byte[] buffer=new byte[256];
try
{
bytes = streamToServer.Read(buffer, 0, buffer.Length);
msg = Encoding.Unicode.GetString(buffer, 0, bytes);
}
catch (IOException)
{
return;
}
为什么我进行接收和发送,比如发送“111”,终端和服务器接收的都是“1”,“1”,“1”,字符串都被分开了,求解应该怎么办?除了定义消息尺寸的方法,还有其他方法么?
int bytes=0;
streamToServer=client.GetStream();
byte[] buffer=new byte[256];
try
{
bytes = streamToServer.Read(buffer, 0, buffer.Length);
msg = Encoding.Unicode.GetString(buffer, 0, bytes);
}
catch (IOException)
{
return;
}
为什么我进行接收和发送,比如发送“111”,终端和服务器接收的都是“1”,“1”,“1”,字符串都被分开了,求解应该怎么办?除了定义消息尺寸的方法,还有其他方法么?
发送和接收必须用同样的编码解码
你这个是什么意思?我实在看不懂。什么叫做字符串“被分开了”?你不就是一个msg一个字符串么,又不是字符串数组?!
或者说client接受到'1‘ client没有接受完整的信息,就直接处理了?
而且发字符串的话,最好带上校验值保持数据完整性。
可以使用发文件的方式尝试。