我对套接字真的很陌生。我使用原始套接字,因为我正在等待一个 UDP 数据包,但我不知道它将从哪个端口到达。我在这里找到了代码:http: //www.binarytides.com/packet-sniffer-code-c-linux/。我将套接字更改为: sock_raw = socket(AF_INET , SOCK_RAW , IPPROTO_UDP) 以仅查看 UDP。它仅在我使用浏览器上网时才有效 - 我看到所有 DNS 重播。但是当我尝试从另一台 PC 接收 UDP 数据包时,它不起作用。在 Wireshark 中,我看到我的 PC 创建的数据包和 ICMP 请求:“端口不可访问”。可能有什么问题????非常感谢!顺便说一句,我使用的是 Ubuntu 12.04、Eclipse 3.7.2。