Моя цель - отправить различные сообщения от клиента на сервер, и он будет основан на тексте. То, что я не уверен, - это то, как del с частичным чтением здесь. Я должен быть уверен, что получаю целую новость и ничего больше.Java nio partial read
У кого-нибудь есть опыт?
Вот то, что я до сих пор:
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();
}
Но у меня нет никакого способа «окончание» сообщение и быть уверенным, чтобы иметь одно полное сообщение.
С наилучшими пожеланиями, O
Вы должны добавить свой текстовый протокол поверх сокета. Как и HTTP. – Nikolai
Hi @Nikolai. Это звучит хорошо, у вас есть ссылка на какой-то пример здесь? Ура! – olemara
HTTP является фактическим примером. Вы можете использовать библиотеку HttpComponents для анализа HTTP-протокола. – Nikolai