【发布时间】:2014-02-05 09:42:00
【问题描述】:
我正在使用 2 个不同的 C 程序来接收分段数据包,其中一个使用定义如下的原始套接字:
_socket0 = socket( PF_PACKET, SOCK_RAW, htons(ETH_P_ALL) );
使用如下定义的 UDP 套接字:
_socket0=socket(AF_INET, SOCK_DGRAM, 0);
第一个工作正常,第二个不工作,我什么都看不到。 谁能告诉我原因?
【问题讨论】:
我正在使用 2 个不同的 C 程序来接收分段数据包,其中一个使用定义如下的原始套接字:
_socket0 = socket( PF_PACKET, SOCK_RAW, htons(ETH_P_ALL) );
使用如下定义的 UDP 套接字:
_socket0=socket(AF_INET, SOCK_DGRAM, 0);
第一个工作正常,第二个不工作,我什么都看不到。 谁能告诉我原因?
【问题讨论】:
UDP 数据包的片段不是 UDP 数据包,因此不会传递到 UDP 套接字。 UDP 套接字用于读取/写入整个 UDP 数据包,而不是携带一个片段的 IP 数据包。
【讨论】: