我有一个客户端服务器程序。
我是这样发送数据的:
private void Sender(string s,TcpClient sock)
{
try
{
byte[] buffer = Encoding.UTF8.GetBytes(s);
sock.Client.Send(buffer);
}catch{}
}
并且在客户端接收就像这样:
byte[] buffer = new byte[PacketSize];
int size = client.Client.Receive(buffer);
String request = Encoding.UTF8.GetString(buffer, 0, size);
问题在于并不总是完全接收到数据,有时只接收到我发送的部分数据。
PacketSize
是10240,比我发送的字节数还要多。我已经在双方都设置了 SendBufferSize 和 ReceiveBufferSize。最糟糕的是,有时候数据是完全接收到的!
可能出了什么问题?