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