NetworkStream 读取消息检查
NetworkStream readed message checking
我从服务器发送“100”
NetworkStream sStream = Client.GetStream();
string sMessage = "100";
byte[] sM = Encoding.ASCII.GetBytes(sMessage);
sStream.Write(sM, 0, sM.Length);
我的客户有这个代码。
sStream.Read(sM, 0, sM.Length);
string FirstCall = Encoding.ASCII.GetString(sM);
// or even
string FirstCall = Encoding.ASCII.GetString(sM).ToString();
if(FirstCall == "100")
{
MessageBox.Show("Message check.. Message : "+Encoding.ASCII.GetString(sM));
}
else
{
MessageBox.Show("Error ; " + Encoding.ASCII.GetString(sM));
}
结束时我收到消息框说 - 错误; 100
在这一点上我不知道我错过了什么..如果我已经做了
Encoding.ASCII.GetString(sM)
它应该是一个字符串。
根据我对字节的研究,我发现..,如果我想发送和接收 3 位数字,我需要做 byte[] data = new byte[3];
- “使用字节大小 3 作为发送 3 位数字number" 然后 sStream.read(data, 0, data.Lenght);
..
或者如果发送文本,但每次文本都是不同的字节,在文本可以使用 var new_data = data.TakeWhile((v, index) => data.Skip(index).Any(w => w != 0x00)).ToArray();
之后删除 [=12=]
但我没有测试它是否删除了字节之间的 [=12=]
你想保留什么。
我从服务器发送“100”
NetworkStream sStream = Client.GetStream();
string sMessage = "100";
byte[] sM = Encoding.ASCII.GetBytes(sMessage);
sStream.Write(sM, 0, sM.Length);
我的客户有这个代码。
sStream.Read(sM, 0, sM.Length);
string FirstCall = Encoding.ASCII.GetString(sM);
// or even
string FirstCall = Encoding.ASCII.GetString(sM).ToString();
if(FirstCall == "100")
{
MessageBox.Show("Message check.. Message : "+Encoding.ASCII.GetString(sM));
}
else
{
MessageBox.Show("Error ; " + Encoding.ASCII.GetString(sM));
}
结束时我收到消息框说 - 错误; 100
在这一点上我不知道我错过了什么..如果我已经做了
Encoding.ASCII.GetString(sM)
它应该是一个字符串。
根据我对字节的研究,我发现..,如果我想发送和接收 3 位数字,我需要做 byte[] data = new byte[3];
- “使用字节大小 3 作为发送 3 位数字number" 然后 sStream.read(data, 0, data.Lenght);
..
或者如果发送文本,但每次文本都是不同的字节,在文本可以使用 var new_data = data.TakeWhile((v, index) => data.Skip(index).Any(w => w != 0x00)).ToArray();
之后删除 [=12=]
但我没有测试它是否删除了字节之间的 [=12=]
你想保留什么。