【发布时间】:2015-01-12 22:21:18
【问题描述】:
在 C 中,你可以在使用 getaddrinfo 时使用服务名来获取端口号,如下所示:
getaddrinfo("stackoverflow.com", "http", &hints, &results);
这会将 80(大端序)分配给 results->ai_addr 的前两个字节 (uint16_t)。
有没有一些简单的方法可以从 ?only 获取端口号?给出服务名称?我在服务器端需要这个,我希望允许用户为要绑定和监听的端口指定端口号或服务名称。
【问题讨论】:
-
grep -w http /etc/services? -
@alk 这是个好主意,但是有一些标准的 C 函数吗?
-
不,还有
getaddrinfo()不是标准C。 -
您想让服务器如何监听“服务名称”,顺便说一句?
-
@alk 你是对的,但它来自一个相当常见的 linux 库,用于处理套接字。有什么可比的吗?
标签: c service port getaddrinfo