2017-02-11 2 views
0

У меня очень простой вопрос, однако я смущен учебным пособием.о возвращенном объекте Socket от SocketServer

Скажем, я создаю сервер & использовать порт 1234:

ServerSocket server = new ServerSocket(1234); 

Затем я прошу сервер ждать просьбы:

while(true) { 
    // is the returned socket represents the server side socket or client side socket??? 
    Socket socket = server.accept(); 
} 

Мой вопрос, является ли сокет, возвращенный server.accept() в на стороне сервера или на стороне клиента? Это не очень хорошо объяснено в Java doc.

Причина, почему я задаю этот вопрос, потому что, когда я бегу socket.getPort(), он не обратный порт сервера 1234, вместо этого, он возвращает порт не определен мной, так что, я думаю, это может быть клиента разъем. Но я не уверен.

+0

Это на сервере. Это серверный сокет. Вы должны были бы назвать 'getLocalport()'. – EJP

ответ

0

Слушает о подключении к этому гнезду и принимает его. Метод блокируется до тех пор, пока не будет выполнено соединение.

что означает, что это сервер.

socket.getPort() согласно javadoc,

Возвращает номер удаленного порта, к которому подключен этот сокет.

+0

Но запустите мой код, с socket.getport() он не возвращает серверный порт 1234, он возвращает порт, который я еще не определил, похоже, что он возвращает сокет клиента. –

+0

См. Мое изменение о последнем вопросе – Andremoniy

0

A Socket имеет два конца, где один конец будет передавать информацию на другой конец с OutputStream и получать информацию с другого конца с помощью InputStream. См. Также методы getInputStream() и getOutputStream() на Socket.

В ваших терминах вы можете считать сокет серверным, потому что InputStream получает информацию от клиента, подключенного к серверу, и OutputStream отправляет информацию клиенту.

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

Смежные вопросы