У меня возникли проблемы с использованием сокетов в java. Прежде всего, позвольте мне объяснить, что я хочу делать с сокетами в java. Я хочу подключить свой ноутбук через Интернет через него. У моего ноутбука есть сервер, и клиент должен подключиться через Интернет. Поскольку у меня есть маршрутизатор для работы с моей локальной сетью, и я не хочу вести порт на маршрутизаторе к моему ноутбуку, мне нужно следовать по пути «Интернет-> маршрутизатор-> локальная сеть-> mylaptop». Проблема в том, что я нашел способ использовать как интернет-IP-адрес, так и локальный IP-адрес; Тем не менее, он бросает исключение: "Exception in thread "main" java.net.BindException: Address already in use"
Ошибка Java Socket Bind
Код Стараюсь является:
InetAddress addr = InetAddress.getByName("XXX.XXX.XXX.XXX");
InetAddress local = InetAddress.getByName("YYY.YYY.YYY.YYY");
Socket socket = new Socket(addr, 1111, local, 1111); // The line I have got exception
С ведущим порта маршрутизатора на мой ноутбук, я могу запустить этот код для подобных целей:
Socket socket = new Socket("XXX.XXX.XXX.XXX", 1111);
* Xs для интернет-ip-адреса
* Подставка под открытым небом для местного ip-адреса
* Коды относятся к клиентской стороне кода
Хорошо, что у вас есть смысл. Однако, что, если я не хочу вести порт на маршрутизаторе? –