У меня есть объект TcpListener, который работает за брандмауэром через порт 4000. Очевидно, что для подключения внешних клиентов к TcpListener, порт 4000 должен быть открыт в брандмауэре; в противном случае ни один запрос на внешнее соединение не будет выполнен.
Мой вопрос связан с тем, что происходит, когда я принимаю запрос на соединение следующим образом:
TcpClient client = server.AcceptTcpClient();
TcpClient открывается на локальном интерфейсе с назначенным системой номером порта. Нужно ли открывать этот номер порта в брандмауэре, чтобы внешний клиент мог связаться с этим экземпляром TcpClient? Если это так, можно ли указать диапазон номеров портов, чтобы их можно было открыть заранее? Или брандмауэр автоматически разрешает связь через этот назначенный системой номер порта, потому что что-то за брандмауэром (в данном случае моим сервером) установило, то есть приняло, соединение?