gpt4 book ai didi

c - 使用 Inet_aton 接受命令行参数错误

转载 作者:行者123 更新时间:2023-11-30 16:16:17 27 4
gpt4 key购买 nike

我正在尝试根据给定的命令行参数初始化套接字,argv1 是 ip,argv2 是端口。端口可以​​根据需要工作,但创建 IP 地址是问题。预期输入为 ./client.out 10.5.10.20 88888这是客户端,服务器端创建端口号成功。

    // Socket information
char ipadd[255];
strcpy(ipadd,argv[1]);
int portval = atoi(argv[2]);
struct sockaddr_in server_info, client_info;
int s_addrlen = sizeof(server_info);
int c_addrlen = sizeof(client_info);
memset(&server_info, 0, s_addrlen);
memset(&client_info, 0, c_addrlen);
server_info.sin_family = PF_INET;
server_info.sin_addr.s_addr = inet_aton(argv[1], &server_info);
server_info.sin_port = htons(portval);


编译时我收到警告

expected ‘struct in_addr *’ but argument is of type ‘struct sockaddr_in *’
extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;


最佳答案

这是对我有用的解决方案

char ipadd[255];
strcpy(ipadd,argv[1]);
int portval = atoi(argv[2]);
struct sockaddr_in server_info, client_info;
int s_addrlen = sizeof(server_info);
int c_addrlen = sizeof(client_info);
memset(&server_info, 0, s_addrlen);
memset(&client_info, 0, c_addrlen);
server_info.sin_family = PF_INET;
server_info.sin_addr.s_addr = htonl(INADDR_ANY);
inet_aton(argv[1], &server_info.sin_addr);
server_info.sin_port = htons(portval);


关于c - 使用 Inet_aton 接受命令行参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56669960/

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