我正在玩插座并遇到问题。我有一个C#客户端继续以这样的顺序发送字节: byte [6] - > byte [30000] - > byte [6] - >字节[30000]; (没有任何休息)
在java套接字服务器上我正在读取这些字节,如下所示:
byte[] mainBuffer = new byte[30000];
DataInputStream inputStream= new DataInputStream(clientSocket.getInputStream());
receivebytes=6;
while(true){
numberOfBytesRedFromStream = inputStream.read(mainBuffer, 0, receiveBytes);
....
if(receivebytes==6){
receibytes=30000;
}
else{
receivebyter=6;
}
}
但有时我根本不会收到足够的30000字节。
你能解释一下为什么会这样吗? 我真的很感激。 提前谢谢。
答案 0 :(得分:0)
发生这种情况的原因有很多,发送它们的客户端可能不是flush()
因此不会发送所有内容,或者可能是因为您发送的字节数大于您的最大帧大小。
查看this了解更多信息