Сначала я проверил бы правильность локальных настроек и прочего, запустив сервер и клиенты на одной машине и используя localhost
или 127.0.0.1
непосредственно в качестве IP-адреса. Если это не работает, у вас есть проблема в вашем коде или локальном брандмауэре, которую вы должны будете исправить, прежде чем приступить к работе с маршрутизатором.
Локальный брандмауэр достаточно легко проверить, просто полностью отключите все брандмауэры, чтобы узнать, сможете ли вы подключиться к localhost. Если вы не можете соединиться с полностью отключенными брандмауэрами, это ваш код, который нужно исправить в первую очередь.
Если это сработает, поэкспериментируйте с разрешением вашему (серверному) приложению через брандмауэр принимать трафик. Клиентское приложение, открывающее соединение, не будет (не должно) иметь проблемы с брандмауэром само по себе, так как это запрашиваемый трафик, которому брандмауэры обычно не мешают.
Если / когда вы можете подключиться к локальному хосту, вы можете попробовать подключиться через Интернет, через маршрутизатор. Скорее всего, ваша проблема в том, что ваш маршрутизатор не перенаправляет порт, который вы открываете, на ваш компьютер. Я сам когда-либо реализовывал переадресацию портов вручную, и вам, вероятно, стоит посмотреть , что это такое и зачем это нужно, прежде чем связываться с вещами. По сути, вы хотите, чтобы клиент подключался к вашему общедоступному ip (что вы нашли на whatsmyip.org или где-либо еще), а ваш маршрутизатор переадресовывал на ваш ip локальной сети (что вы найдете на вкладке поддержки конфигурации локальной сети). Пошаговые инструкции для этого относятся к конкретному маршрутизатору, но обычно просты (обычно на странице управления маршрутизатором есть вкладка «брандмауэр» и / или «дополнительные» или что-то в этом роде).
В конечном итоге вы можете попытаться реализовать upnp, который не кажется слишком сложным из быстрого поиска в Google , но, вероятно, он слишком сложен для этапа обучения, на котором вы, вероятно, находитесь.