gpt4 book ai didi

c - 如何在 C 中设置特定于字符串的主机名?

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:13 25 4
gpt4 key购买 nike

所以,我正在尝试学习 C 语言的套接字编程(我是 C 语言的菜鸟),但是我们如何设置基于字符串的主机名。例如:

  memset(&echoServAddr, 0, sizeof(echoServAddr));     /* Zero out structure */
echoServAddr.sin_family = AF_INET; /* Internet address family */
echoServAddr.sin_addr.s_addr = inet_addr(servIP); /* Server IP address */
//echoServAddr.sin_addr.s_addr = servIP;
echoServAddr.sin_port = htons(echoServPort); /* Server port */

这里:

 echoServAddr.sin_addr.s_addr = inet_addr(servIP); 

servIP 必须是 127.0.0.1 形式,但我想使用像 localhost 这样的字符串?

最佳答案

您必须使用getaddrinfo 函数。它的用法如下:

getaddrinfo(machine, port, &addrinfo, &addrinfo_result)

例如:

struct addrinfo hints; //This "helps" to search
struct addrinfo *result;

memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_DGRAM; //Your socket's type
/* There are some more like protocol, flags.. */

error = getaddrinfo(argv[1], argv[2], &hints, &result);

关于c - 如何在 C 中设置特定于字符串的主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com