从套接字接收数据有奇怪的问题。 在客户端即时通讯使用空气插座。在服务器Java netty上。 即时消息写入套接字简单包:int numPacket,int textLength,utf8String文本。并阅读客户端。套接字。当我需要数据包时,数据包保持队列状态
//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)
有时一个数据包()犯规被客户端接收,但服务器在发送有和tcpdump显示,包被发送。如果服务器发送新的数据包,客户端读取先前的数据包,并且不接收新的数据包 - 它就像我不需要的队列一样工作。 P.S遗憾的英语不好-_-
tcpdump显示数据包被正确发送。 Flush不会帮助我 – user1081056 2012-03-22 10:16:37