我在 UDP 套接字上调用 select() 以查看是否有要读取的数据。每次方法返回 -1 并且 errno 设置为 22(无效参数)。这是我的代码的一部分:
fd_set sockets;
struct timeval alarm;
alarm.tv_sec = 0;
alarm.tv_usec = 1000;
FD_ZERO(&sockets);
FD_SET(udpSocket, &sockets);
maxfd = udpsocket + 1;
selected = select(maxfd, &sockets, NULL, NULL, &alarm);
printf("%d\n", selected);
“选定”始终为 -1。我知道套接字很好,因为此时我已经成功地通过它发送了数据。