下午好。告诉我我做错了什么。我从服务器向客户端发送一条消息,
serverSocket.SendTo(Data, lenght,SocketFlags.None ,client);
其中
Data- array Byte[1024]
lenght- 传输消息的长度
client- IPEndPoint
客户端接收:
StringBuilder builder = new StringBuilder(); // сообщение в тексте
do
{
lengthInBytes = clientSocket.Receive(data); // длина сообщения
builder.Append(Encoding.Default.GetString(data)); //data - Byte[1024]
}
while (clientSocket.Available > 0);
commonWindow.Text += builder.ToString(); // вывод в TextBlock
该消息以以下格式显示:
“用户 Ivan 已进入聊天 [][][][][][][][][][][] 等等”
显然,这些是空字节元素,如何截断他们?(显然这应该在收到消息时完成)
发生这种情况是因为缓冲区未完全填满并且其中残留垃圾。根据收到的消息字节数,在收到消息后更改缓冲区的长度
received。