2010-08-17 135 views
3

我想設置不分段標誌上的IP數據包。有沒有辦法通過setsockopt()函數或通過sendto()函數的標誌來實現?如何設置不分段(IP_DF)標誌使用C

我可以使用「普通」套接字來做到這一點,還是必須使用原始套接字並自己構建整個IP標頭,並將其偏移字段設置爲IP_DF(在ip.h中定義)?

+0

在對當前的答案評論,海報指出,他們使用的OS X [IP是否在Mac OS not Fragment位] – TBBle 2017-05-03 10:38:33

+0

可能的複製(http://stackoverflow.com/questions/4415725/ip- dont-fragment-bit-on-mac-os) – TBBle 2017-05-03 10:38:54

回答

2

根據this page,可以使用數據報套接字(UDP)爲IP層設置IP_DONTFRAG選項。 This SO discussion朝一個相似的方向點。

+0

感謝您的聯繫。我正在Mac上開發。所有這些常量都在文件in.h中定義。不幸的是,我找不到IP_DONTFRAG和IP_MTU_DISCOVER常量。然而,大多數(或全部)其他常量在那裏 - 例如IP_MULTICAST_TTL等。有關Mac上的這個問題的任何想法? – j00hi 2010-09-02 16:02:24