Подтвердить что ты не робот

Что такое привязка сокетов и как связать адрес?

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

ServerSocket.bind()

От Javadoc:

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

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

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

Я использую:

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

И я получил ошибку Already Bound!

4b9b3361

Ответ 1

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

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

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

Когда вы выполните:

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

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

Ответ 2

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