【发布时间】:2020-06-05 02:02:33
【问题描述】:
我用 C 写了一个 ICMP ping 代码,我通过socket(AF_INET, SOCK_RAW, IPPROTO_ICMP) 创建了一个套接字
我把它绑定为:bind(sendSock, (struct sockaddr *)&addr, sizeof(addr)),在调用sendto()函数后,我调用recvfrom()函数接收ICMP回复,但我发现我可以接收所有的包,不仅仅是我之前发送的destIP。
为什么会有这样的 recvfrom() 行为?我是一名 Java 程序员,我知道 Java 套接字只接收它发送的带有特定 IP 的包。
任何套接字都可以接收 C 中的所有包吗?
【问题讨论】:
标签: icmp