带有MSG_ERRQUEUE的Linux UDP套接字recvmsg

带有MSG_ERRQUEUE的Linux UDP套接字recvmsg,c,linux,sockets,network-programming,C,Linux,Sockets,Network Programming,为了在套接字X上使用sendto()发送时获取ICMP错误(例如dest unreach),可以使用MSG_ERRQUEUE标志在该套接字X上调用recvmsg。(OS=linux) 我正在将此套接字X与端口Y绑定,无法接收端口Y的udp数据包和sendto()生成的ICMP错误 设置MSG_ERRQUEUE标志时是否可以接收“正常”udp数据包?或者使用MSG_ERRQUEUE标志recvmsg()是否只能从“错误”队列接收 谢谢这很难简单地尝试一下,看看是不是真的?是的,我尝试过,但似乎不是

为了在套接字X上使用sendto()发送时获取ICMP错误(例如dest unreach),可以使用MSG_ERRQUEUE标志在该套接字X上调用recvmsg。(OS=linux)

我正在将此套接字X与端口Y绑定,无法接收端口Y的udp数据包和sendto()生成的ICMP错误

设置MSG_ERRQUEUE标志时是否可以接收“正常”udp数据包?或者使用MSG_ERRQUEUE标志recvmsg()是否只能从“错误”队列接收


谢谢

这很难简单地尝试一下,看看是不是真的?是的,我尝试过,但似乎不是。我只是想知道我是做错了什么,还是每个设计都不可能。
 recvmsg(X, &msg, MSG_ERRQUEUE);