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=]你想保留什么。