我的目标是从客户端向服务器发送不同类型的消息,它将是基于文本的。我不确定的是如何在这里删除部分读取。我必须确保我得到一个完整的信息,仅此而已。
有没有人有这方面的经验?
这是我到目前为止所拥有的:
private void handleNewClientMessage(SelectionKey key) throws IOException {
SocketChannel sendingChannel = (SocketChannel) key.channel();
ByteBuffer receivingBuffer = ByteBuffer.allocate(2048);
int bytesRead = sendingChannel.read(receivingBuffer);
if (bytesRead > 0) {
receivingBuffer.flip();
byte[] array = new byte[receivingBuffer.limit()];
receivingBuffer.get(array);
String message = new String(array);
System.out.println("Server received " +message);
}
selector.wakeup();
}
但是我没有办法“结束”这条信息,并且一定会收到一条完整的信息。
最好的问候,