为了在套接字 X 上使用 sendto() 发送时获得 ICMP 错误(例如 dest unreach。),可以使用 MSG_ERRQUEUE 标志在该套接字 X 上调用 recvmsg。(操作系统 = linux)
recvmsg(X, &msg, MSG_ERRQUEUE);
我正在将此套接字 X 与端口 Y 绑定,但我无法接收端口 Y 的 udp 数据包以及 sendto() 生成的 ICMP 错误。
设置 MSG_ERRQUEUE 标志时是否可以接收“正常”的 udp 数据包?或者带有 MSG_ERRQUEUE 标志的 recvmsg() 只能从“错误”队列接收?
谢谢