Да, вы в основном правы.
Сервер прослушивает какой-то порт (тот, который вы установили), но когда вы принимаете соединение, он приписывает новый номер подключенного сокета.
Если вы не видите подключенные сокеты с помощью netstat, возможно, это потому, что вы не вызываете его с правильными опциями. У вас должно быть одно соединение LISTEN на порту сервера и одно УСТАНОВЛЕННОЕ соединение с выделенным локальным портом для каждого активного удаленного соединения. Вы также можете иметь некоторые остатки разорванного соединения (плохо разорванного) с состоянием ВРЕМЕНИ ОЖИДАНИЯ.
Ниже приведена выдержка из текущего состояния моей системы (получено с netstat -anlp
в Linux)
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 27002/rdpproxy
tcp 0 0 10.10.4.185:3389 10.10.4.13:36725 ESTABLISHED 27233/rdpproxy
Сервер 10.10.4.185 и прослушивает порт 3389. Любой удаленный IP-адрес и удаленный порт могут подключаться.
Вторая строка показывает подключенный сеанс. Удаленный адрес - 10.10.4.13 и зарезервируйте порт 36725 для этого адреса. Следовательно, вы можете открыть множество соединений из 10.10.4.185 (десятая часть тысяч) и даже больше из других систем.
И, нет, это не означает, что ваш сервер сможет принимать бесконечное количество соединений, ваша система может выйти из ресурсов и не сможет открыть новые соединения задолго до этого предела.