Что такое сокет связывания и как связать адрес? - PullRequest
13 голосов
/ 23 мая 2011

В Java мне нужно знать, что такое операция связывания:

ServerSocket.bind()

От Javadoc:

Связывает ServerSocket с определенным адресом (IP-адресом и портом номер).

Я знаю, что такое привязка и EJB (из примера) к имени. Это похоже?

Как привязать локальный адрес к сокету сервера?

Я использую:

providerSocket.bind(new InetSocketAddress("192.168.0.1", 0));

А у меня Already Bound ошибка!

Ответы [ 2 ]

25 голосов
/ 27 января 2012

Для подключения требуется клиент и сервер.

Чтобы клиент отправлял данные на сервер, клиент должен иметь адрес сервера и номер порта. Точно так же, чтобы сервер отправлял данные клиенту, сервер должен иметь адрес клиента и номер порта.

Привязка к сокету означает присвоение сокету адреса и номера порта.

Когда вы делаете:

providerSocket.bind(new InetSocketAddress("192.168.0.1", 0));

Вы получаете Already Bound ошибку, потому что providerSocket уже имеет адрес и номер порта, и назначение нового адреса / номера порта не допускается. После создания ServerSocket он связывается (если только он не использует конструктор без параметров java.net.ServerSocket.ServerSocket () ).

0 голосов
/ 21 февраля 2017

Вы должны оставить ServerSocket() пустым, а не ServerSocket(666,9) Вы не должны делать второй пример, иначе он не будет работать.Внутри скобок ServerSocket вы ничего не вводите.

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