Проблема, с которой вы сталкиваетесь, вызвана NAT . Это используется маршрутизаторами, которые позволяют нескольким клиентам подключаться к сети через один публичный IP-адрес. Ни один из клиентов за маршрутизатором не будет «знать» или «видеть» это, но это ограничивает возможности соединения.
Клиенты могут инициировать соединение с внешним миром, но наоборот это просто невозможно. Если вы не используете переадресацию портов , когда один или несколько портов перенаправляются клиенту за маршрутизатором. Таким образом, соединения могут быть инициированы извне.
Однако это требует настройки на стороне клиента, поэтому предпочтительным способом будет позволить вашим клиентам подключаться к вашему серверу, поскольку это всегда будет возможно (брандмауэры игнорируются).
*: Существует также обходной путь, когда вы разрешаете клиенту подключаться к вашему серверу, а затем передавать информацию о соединении другому клиенту, чтобы эти клиенты могли общаться друг с другом. Это называется «nat punching» и используется, например, торрент-клиентами.