64 kb サイズのパッケージを取得するサーバーを作成しています。
int length = 65536;
byte[] bytes = new byte[length];
int pos = 0;
while(pos < length -1)
{
System.out.println("Before read");
pos += dis.read(bytes, pos, length-pos);
System.out.println(""+pos+" >> "+ length);
}
これは、ソケットからすべてのバイトを読み取るために使用するコードです。Dis
ですInputStream
。コードを実行すると、n のうち 1 が失敗します。このコードは、バイトではなく 52964 バイトしか受け取りません65536
。
Cコードもチェックしたところ、65536
バイトを送信すると書かれています。
誰かが私が間違っていることを知っていますか?