C 接收UDP消息,但如果没有,则转到
我有点小问题,但还没有找到解决办法 问题似乎很简单: 我有一个过程。在这个过程中,我想检查是否有UDP消息发送到我正在使用的端口。如果有消息发送,整个发送和接收过程都没有问题。如果没有发送消息,则进程正在等待消息,程序在发送下一条消息之前不会继续 问题是,如果没有消息,我如何修改代码,让流程继续进行 我的代码(接收UDP消息的标准代码):C 接收UDP消息,但如果没有,则转到,c,sockets,udp,C,Sockets,Udp,我有点小问题,但还没有找到解决办法 问题似乎很简单: 我有一个过程。在这个过程中,我想检查是否有UDP消息发送到我正在使用的端口。如果有消息发送,整个发送和接收过程都没有问题。如果没有发送消息,则进程正在等待消息,程序在发送下一条消息之前不会继续 问题是,如果没有消息,我如何修改代码,让流程继续进行 我的代码(接收UDP消息的标准代码): 您的选择如下: 使用select(),poll(),epoll()等来等待数据,而不是直接调用recvfrom() 通过使用fcntl()在套接字上设置O\u
您的选择如下:
select()
,poll()
,epoll()
等来等待数据,而不是直接调用recvfrom()
fcntl()
在套接字上设置O\u NONBLOCK
标志,将套接字设置为非阻塞。这将使recvfrom()
立即返回,而不是阻塞SO\RCVTIMEO
socket选项设置接收超时if((nbrecv = recvfrom(s, buffer, BUFFER_SIZE, 0, &remote, &len_remote)) == -1){
fprintf(stderr, "failure!\n");
exit(-1);
}
etc.