Я посылаю сообщение через DatagramChannel следующим образом:Отправка сообщения через DatagramChannel
ByteBuffer buf = ByteBuffer.allocate(48);
buf.clear();
String request_message = "request";
buf.put(request_message.getBytes());
buf.flip();
int bytesSent = udpserver.send(buf, successor_port_1); // udpserver is a DatagramChannel
Затем я прочитал сообщение на сервере:
ByteBuffer buf = ByteBuffer.allocate(48);
buf.clear();
String message = new String(buf.array(), Charset.forName("UTF-8"));
System.out.println(message); //print message for testing purposes
if (message == "request"){
//code here does not get executed
}
Проблема заключается в том, мой код не введите оператор «if», даже если message = «request», который также подтверждается моим заявлением на печать.
Любая помощь будет оценена!
Сравнение строк не имеет ничего общего с сетью. Сравнение строк используется везде. Его нельзя использовать как специфическую для TCP/IP. Это функция маршалинга данных. – Val