gpt4 book ai didi

规范名称或 IP 地址 - 套接字、linux 和 C

转载 作者:行者123 更新时间:2023-12-03 11:50:39 25 4
gpt4 key购买 nike

我如何知道字符串规范名称还是IP地址

因为如果 argv[1]IP 地址,我会这样做:

sscanf(argv[2],"%" SCNu16,&server_port);
inet_aton(argv[1],&server_address);

remote_address.sin_family = AF_INET;
remote_address.sin_port = htons(server_port);
remote_address.sin_addr = server_address;

如果 argv[1] 是规范名称,我会这样做:

h = gethostbyname(server);

indirizzo_remoto.sin_family = AF_INET;
indirizzo_remoto.sin_port = htons(porta_server);
indirizzo_remoto.sin_addr = XYZ;

另外,我必须用什么来代替 XYZ

可能的解决方案:

struct in_addr indirizzo_server; 
struct hostent *h;

h = gethostbyname(server);

inet_aton(h->h_addr_list[0],&indirizzo_server);

indirizzo_remoto.sin_family = AF_INET;
indirizzo_remoto.sin_port = htons(porta_server);
indirizzo_remoto.sin_addr = indirizzo_server;

最佳答案

熟悉getaddrinfo(3)两者都可以,并且还支持 IPv6。

关于规范名称或 IP 地址 - 套接字、linux 和 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110914/

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