Подключение клиента Tcp с одного устройства к серверу Tcp на другом устройстве

Код клиента / сервера Tcp, с которым я работаю, находится здесь: клиент и сервер. Как следует из названия, я запускаю серверный код на своем компьютере и хочу подключиться к нему с другого устройства с помощью клиентского кода. У меня вопрос, к какому IP-адресу должен подключаться мой клиентский код? Я знаю, что есть много связанных сообщений, но я получаю информацию только о том, что не так, а не о решении.

1 ответ

Решение

Это распространенная проблема при разработке клиент-серверных приложений. В типичной домашней сети существует несколько локальных IP-адресов и один внешний IP-адрес. Все устройства, взаимодействующие с вашей сетью извне, должны использовать внешний IP-адрес. Однако при написании клиент-серверных приложений, если вы просто введете внешний IP-адрес в качестве адреса для подключения, вы быстро обнаружите, что это не сработает.

Вам нужно использовать переадресацию портов. Клиент и сервер будут обмениваться данными через определенный порт, а переадресация портов - это способ определения маршрутизатором того, на какой локальный IP-адрес отправлять данные, когда клиент подключается к внешнему IP-адресу. Вы хотите войти в настройки своего маршрутизатора, перейти к разделу о переадресации портов и указать, что связь через порт, который вы используете на своем сервере, должна быть перенаправлена ​​на локальный IP-адрес, на котором работает ваш сервер. Как именно изменить эти параметры на вашем маршрутизаторе, зависит от того, какой маршрутизатор вы используете.

Запустите команду ipconfig в командной строке Windows на компьютере, на котором работает ваш сервер. Получите локальный IPv4-адрес из результатов. Этот адрес используется при переадресации портов на порт, используемый вашими клиент-серверными приложениями. Измените настройки маршрутизатора соответствующим образом, и тогда ваш клиент сможет нормально использовать ваш внешний IP-адрес.

Чтобы найти ваш внешний IP-адрес, любой веб-сайт, такой как http://www.whatsmyip.org/ должен работать нормально.

Если вы хотите пока избежать всех этих проблем и просто протестировать свое приложение в домашней сети, то используйте локальный IPv4-адрес, найденный при запуске команды ipconfig на машине, на которой работает ваш сервер. Обратите внимание, что это будет работать только в том случае, если клиент и сервер работают в одной сети.

Другие вопросы по тегам