2009-08-23 73 views

回答

2

不要。使用write(),使用sendto()。

如果您使用PF_PACKET,SOCK_DGRAM,那么它会为您建立链接层标头,这通常是您想要的。你仍然需要建立你使用的顶级协议。

指定目标参数中的sockaddr_ll。您可以指定链路层单播地址,多播地址或广播地址。

+0

如果IP头包含目的地,那么与sendto()指定的主机有什么关系 – computergeek6 2009-08-23 20:26:47

+0

是的,如果你正在发送一个IP包,如果你使用PF_PACKET,SOCK_DGRA,你仍然需要将它发送到合适的链路层地址。如果您想发送原始IP数据包,我建议您改用PF_INET,SOCK_RAW。 – MarkR 2009-08-23 20:36:38

+0

如果我使用PF_INET,SOCK_RAW,我需要绑定套接字吗? – computergeek6 2009-08-23 20:41:12