сетевое соединение на стороне клиента tcp - PullRequest
1 голос
/ 08 июня 2011

Я работаю над клиент-серверным приложением, и клиент должен продолжать прослушивать данные, полученные сервером, даже если клиент не отправлял никаких запросов.Я хотел бы иметь некоторую информацию о том, как сохранить клиентский сокет, чтобы продолжать слушать входящую информацию сервера.Обычно на стороне сервера существует бесконечный цикл while.Должен ли я сделать то же самое на стороне клиента?Спасибо за помощь, или если есть хороший учебник, которым я могу следовать на клиент / сервер.

1 Ответ

1 голос
/ 08 июня 2011

Ну, это просто - создайте экземпляр java.net.Socket и используйте его.

http://download.oracle.com/javase/6/docs/api/java/net/Socket.html

Например, получите связанный поток через getInputStream (), а затем прочитайте() байтов из InputStream.

  • javadoc говорит: «Если канал находится в неблокирующем режиме, то операции чтения входного потока вызовут исключение IllegalBlockingModeException.»
  • , поэтому я предполагаю, что, если канал находится в режиме блокировки, метод чтения входного потока заблокирует ваш поток (таким образом, вам не понадобится бесконечный цикл в вашем коде)
...