我写过小型tcp套接字客户端和服务器应用程序。服务器将文本消息发送给客户端。
部分服务器代码:
new_sock.Send(Encoding.UTF8.GetBytes("efgh"));
部分客户代码:
byte[] buffer = new byte[100];
int count = sock.Receive(buffer);
sock.Close();
textBox_received.Text = Encoding.UTF8.GetString(buffer);
在Windows窗体应用程序中一切正常,但在收到文本后的WPF应用程序中始终显示“框”:
是什么原因,我该怎么做才能避免它?
答案 0 :(得分:3)
你从100字节的整个缓冲区中获取字符串,而实际上只收到了一些字符串。您应该只对实际收到的字节进行Encoding.GetString:
textBox_received.Text = Encoding.UTF8.GetString(buffer,0,count);