c - 端口号服务,如 getaddrinfo

标签 c service port getaddrinfo

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

getaddrinfo("stackoverflow.com", "http", &hints, &results);

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

是否有一些简单的方法可以从 ?only 获取端口号?提供服务名称?我在服务器端需要这个,我希望允许用户为要绑定(bind)和监听的端口指定端口号或服务名称。

最佳答案

使用带有主机名空指针的getaddrinfo 和标志中的AI_PASSIVE 将为您提供一个sockaddr,您可以绑定(bind)它来运行服务器。请参阅 getaddrinfo 的文档:

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

关于c - 端口号服务,如 getaddrinfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948406/

相关文章:

c# - 如何获得使用 TcpClient 进行连接的基本应用程序?

c - 如何在用户按下 C 中的特定键之前读取字符串?

mysql - Puppet 无法在 chroot 环境中运行服务

apache - XAMPP apache 服务器没有使用我想要的端口,不确定为什么

c++ - 删除的 Windows 服务仍在运行

c# - 为什么 System.Threading.Timer 会自行停止?

mysql - 无法从本地主机连接到 MySQL 服务器,但 MySQL 服务正在运行

c - 段错误 : 11 in basic single source C program

c - 尝试构建库并收到以下警告 : warning: type of bit-field ‘type’ is a GCC extension [-Wpedantic] uint8_t type:1;

c - 计算错误 C uint64_t