Java Socket不接收所有字节

时间:2014-10-04 20:14:26

标签: java c# sockets

我正在玩插座并遇到问题。我有一个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字节。

你能解释一下为什么会这样吗? 我真的很感激。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因有很多,发送它们的客户端可能不是flush()因此不会发送所有内容,或者可能是因为您发送的字节数大于您的最大帧大小。

查看this了解更多信息