Совместное использование порта 443 между IIS и службой C ++ - PullRequest
2 голосов
/ 07 декабря 2011

Из-за определенного требования мне нужно, чтобы служба прослушивала порт 443 (возможно, 80), чтобы сосуществовать с IIS на том же сервере Windows 2008. Можно иметь службу WCF, размещенную в службе Windows, для совместного использования порта 80 с IIS, но мне было интересно, возможно ли это сделать в службе C ++? Я читал ответы на подобные вопросы, такие как это , это и это , но у меня до сих пор нет соответствующего ответа.

1 Ответ

2 голосов
/ 07 декабря 2011

Только одно приложение может быть связано с парой IP-адрес / порт-номер.Если сокет связан с INADDR_ANY и каким-либо портом, то никакое другое приложение не может связываться с этим портом.

Если вы хотите, чтобы два приложения получали данные через порт, вам нужен какой-то прокси, который прослушивает фактическийport, в то время как другие программы прослушивают какой-либо другой порт или адрес, к которому подключается прокси-сервер.

Использование прокси-сервера, по-видимому, является способом, которым WCF управляет совместным использованием портов.Цитата из this link:

Когда привязка net.tcp разрешает совместное использование портов (путем установки portSharingEnabled = true для элемента привязки транспорта), она неявно разрешает внешний процесс (а именноSMSvcHost.exe, на котором размещена служба общего доступа к портам Net.TCP) для управления сокетом TCP от его имени.

...