服务到端口号,例如 getaddrinfo

Hor*_*ith 1 c service port getaddrinfo

在 C 中,您可以在使用 getaddrinfo 时使用服务名称来获取端口号,如下所示:

getaddrinfo("stackoverflow.com", "http", &hints, &results);
Run Code Online (Sandbox Code Playgroud)

这会将 80(大端)分配给 results->ai_addr 的前两个字节 (uint16_t)。

有没有一些简单的方法可以从 ?only 获取端口号?给出服务名称?我需要在服务器端使用它,我希望允许用户为要绑定和侦听的端口指定端口号或服务名称。

R..*_*R.. 5

使用主机名和标志中getaddrinfo的空指针将为您提供一个可以绑定来运行服务器的值。请参阅文档:AI_PASSIVEsockaddrgetaddrinfo

http://pubs.opengroup.org/onlinepubs/9699919799/functions/getaddrinfo.html