Что означает параметр номера порта в оболочке Windows WinSock ATL CSocketAddr :: FindINET4Addr - PullRequest
0 голосов
/ 11 октября 2011

Используется ли UDP-порт для отправки DNS-запроса, например, 53?Или может имя хоста, например example.com, иметь другое разрешение IP-адреса в зависимости от используемого порта, например, порт 80 example.com - это 1.2.3.4, а порт 25 example.com - 5.6.7.8?Если это так, то является ли этот параметр «номер порта» разрешением имени конкретного порта?

Этот метод в конечном счете вызывает getaddrinfo окна, где он заканчивается как 2-й параметр const char * servname, который является строкой, являющейся этим целочисленным портомчисло в виде строки, например, «53» или «80».

1 Ответ

0 голосов
/ 11 октября 2011

Номер порта используется, когда параметр флага содержит флаг AI_NUMERICSERV:

С http://msdn.microsoft.com/en-us/library/ms738520.aspx:

Когда установлен бит AI_NUMERICSERV, параметр pServiceName должен содержатьномер порта, отличный от NULL, в противном случае возвращается ошибка EAI_NONAME.Этот флаг предотвращает вызов службы разрешения имен.

Флаг AI_NUMERICSERV определен в Windows SDK для Windows Vista и более поздних версий.Флаг AI_NUMERICSERV не поддерживается поставщиками Microsoft.

...