2009-08-23 98 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