我的目标是发送不同类型的消息从客户端到服务器,它将基于文本。我不确定的是如何在这里删除部分读取。我必须确保我得到一个完整的信息,而不是更多。爪哇尼奥部分阅读
有没有人有这方面的经验?
这是我到目前为止有:
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();
}
但我没有“结束”的消息的方式肯定有一个完整的消息。
最好的问候, Ø
您应该在套接字上添加文本协议。像HTTP一样。 – Nikolai 2013-04-25 14:40:19
Hi @Nikolai。这听起来不错,你有链接到这里的例子吗?干杯! – olemara 2013-04-30 08:02:46
HTTP就是一个实际的例子。您可以使用HttpComponents库来解析HTTP协议。 – Nikolai 2013-04-30 12:28:18