소켓에서 데이터를 수신하는 데 이상한 문제가 있습니다. 클라이언트에서 공기 소켓을 사용 중입니다. 서버 자바 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)
때로는 하나의 packets()이 클라이언트에 수신하지만 서버가 거기에 보내졌으며 tcpdump가 패킷이 전송되었음을 나타냅니다. 서버가 새 패킷을 보내면 클라이언트는 이전 패킷을 읽고 새 패킷을 수신하지 않으며 필요없는 대기열처럼 작동합니다. 나쁜 영어 죄송합니다 p.s -_-
tcpdump는 패킷이 올바르게 전송되었음을 보여줍니다. 내게 도움이되지 않는 플러시 – user1081056