Программирование сокетов Java: возможно ли для сокета сервера инициировать связь? - PullRequest
1 голос
/ 13 января 2012

1, на моем сервере есть ServerSocket для приема подключения клиента 2, мой клиент создает сокет и отправляет сообщение на сервер. 3, сервер получает сообщение и отвечает клиенту.

Так что всегда клиент инициирует связь.

Скажем, спустя некоторое время после первоначального подключения клиента сервер хочет отправить клиенту еще одно сообщение, возможно ли это сделать?

Ответы [ 2 ]

5 голосов
/ 13 января 2012

Если вы оставляете соединение с клиентом открытым на сервере, то да. Клиент должен будет всегда прислушиваться к поступающим данным.

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

1 голос
/ 13 января 2012

Клиент всегда должен инициировать соединение, это практически единственное различие между сервером и клиентом (программа может быть как сервером, так и клиентом).

Однако, как только соединение установлено, пока оно не закрыто, любая из сторон может отправлять данные другой (при условии, что другая сторона прослушивает данные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...