0
我正在写一个简单的UDP客户端,并将错误作为“无效参数”返回,但我不知道错在哪里。它在linux上编译。我的代码如下。c connect()错误 - 无效参数
int udp_fd = -1;
struct sockaddr_in addr;
int port = 1701;
udp_fd = socket(AF_PPPOX, SOCK_DGRAM, 0);
if (udp_fd < 0) {
printf("fail to get UDP socket\n");
return 0;
}
memset((char *) &addr, 0, sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("31.25.210.118");
addr.sin_port = htons(port);
if(connect(udp_fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
printf("UDP connect failed, errno = %s\n", strerror(errno));
return 0;
}
它在Linux上编译,我不知道是否是时间错误。我如何检查? – user3085926
编译器说什么?你使用什么编译器?你可以粘贴'gcc -Wall yourclient.c'的结果吗? – DrakaSAN
我刚刚试过这段代码,它是一个运行时错误,connect()失败,因为套接字的类型是AF_PPPOX。我试着用AF_INET,它工作正常。我认为AF_PPPOX套接字必须以不同的方式处理。 –