Проблема с Java Socket и ServerSocket - PullRequest
5 голосов
/ 23 февраля 2011

У меня есть фрагмент кода:

ServerSocket serversocket=new ServerSocket(DEFAULTPORT);
serversocket.setSoTimeout(1000);
Socket socket=serversocket.accept();
  1. Влияет ли закрытие объекта serversocket также на состояние объекта socket?

  2. Если я закрою объект serversocket, могу ли я по-прежнему использовать объект socket для своих потоков?

1 Ответ

3 голосов
/ 23 февраля 2011

Краткие ответы:

1) нет

2) да

Более длинный ответ:

ServerSocket ожидает подключения клиентов (он ожидает в методе accept).Когда есть клиент, метод accept возвращает, более конкретно, он возвращает объект Socket, который затем представляет конечную точку сервера соединения сервер-клиент.Если сервер закрывает свой сокет-сервер, он больше не слушает (он больше не принимает новых клиентов), но клиенты, с которыми у него уже есть сокет-соединение, не затрагиваются.

Ваш код не является "неправильным" в соответствии сОднако, он может принимать только одного клиента и только если он подключен в течение 1000 миллисекунд.

Вот введение, включающее пример кода:

http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

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