У многих вопросов, связанных с используемым портом 80, есть ответы, говорящие, что существует много программ, которые используют его как порт по умолчанию. В этом сообщении упоминаются некоторые: Skype, IIS, Apache...
Поскольку только одно приложение может прослушивать любой порт за раз - как это может быть? И если ответ заключается в том, что только порт по умолчанию - как приложение будет знать, что оно должно отправлять информацию на другой порт? Например, если iis будет прослушивать порт 81, потому что Skype прослушивает 80 - как кто-нибудь, кто запросит веб-страницу, узнает, что отправит запрос на theip: 81, в отличие от theip: 80?
Моя цель состоит в том, чтобы иметь надежный способ настройки соединения между программами, когда любой жестко закодированный порт может выйти из строя из-за того, что какое-то приложение уже прослушивает его. Порт нужно будет использовать только один раз, чтобы сообщить, какой динамический порт будет использоваться для остальной части сеанса. Это проблема как для сетевых подключений, так и для подключения нескольких приложений на одном компьютере.
Регистрация с помощью IANA не всегда возможна и даже не обязательно решит проблему - кто-то все еще может прослушивать зарегистрированный порт. И, очевидно, решение "надежды на отсутствие столкновений" - просто не режет.
(Я понимаю, что соединение имеет два сокета (и протокол), и поэтому один сокет может иметь несколько подключений. Мой вопрос заключается в прослушивании сокета, чтобы установить соединение.)
Что бы я ожидал, существует ли какая-то служба в ОС (Windows), с которой я мог бы регистрировать свое приложение и получать весь входящий трафик с некоторой подписью, даже если это просто какая-то магическая строка. Или, возможно, какой-то порт, где несколько приложений могут прослушиваться одновременно - и все получат каждое входящее сообщение. Но пока я не нашел ничего подобного.