Входной поток сокета Java SE не получает ответ - PullRequest
0 голосов
/ 26 ноября 2011

Я создал ServerSocket, связанный с портом в моем приложении. Я распространяю это приложение на подключенные ПК в той же сети. Я могу отправить запрос на любой компьютер, на котором установлено приложение, используя этот порт. Теперь получатели могут получать сообщения, но когда они отправляют ответ обратно запрашивающему ПК, поток ввода никогда не получает сообщение. Есть ли способ сделать это. Я не знаю ничего о СРОЧНЫХ сообщениях TCP. Я включил это, но я не знаю, как отправить их. Мое сообщение удаляется по умолчанию? Я не получаю ответ в других темах.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

В ClientSocket и ServerSocket должен быть цикл, поддерживающий связь в активном состоянии.

В противном случае: Должны быть реализованы как сокет клиента, так и сокет сервера со всех сторон (все устройства отправителя и получателя). Когда серверный сокет A получает сообщение, чтобы ответить назад, должен быть клиентский сокет, который отвечает обратно на серверный сокет B, который находится в приложении отправителя на его устройстве.

Таким образом, все устройства с серверным сокетом с одинаковым портом могут обнаруживать и отправлять сообщения друг другу.

Конечно, IP-адрес отправителя должен быть сохранен для ответа.

1 голос
/ 26 ноября 2011

Вы flush выводите поток на ПК, отправляющих данные?

// Send data here  
yourOutputStreamReference.flush();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...