ソケットからデータを受信するのに奇妙な問題があります。 空のソケットを使用しているクライアントでは。サーバーJava Netty上。 ソケットシンプルパケットへの書き込み:int numPacket、int textLength、utf8String text。クライアントで読む。ソケット。パケットが必要なときにキューに残ります
//server
buffer.writeInt(packetId);
ChannelBuffer ch = ChannelBuffers.copiedBuffer(text, CharsetUtil.UTF_8);
buffer.writeInt(text.length());
buffer.writeBytes(ch);
//client
packetId = socket.readInt()
packetLen = socket.readInt()
text = socket.readUtfBytes(packetLen)
時々、1つのパケット()のdoesntは、クライアントが受信しますが、サーバーが送信した、およびパケットが送信されたことをtcpdumpのショー。サーバーが新しいパケットを送信すると、クライアントは以前のパケットを読み込み、新しいパケットを受信せず、必要のないキューのように機能します。クライアントは、おそらくいくつかのバイト\n
を待っているように、各または3つすべて
tcpdumpパケットが正しく送信されたことを示します。私のために助けてくれない – user1081056