-1

エラー: IP_RECVDSTADDR が宣言されていません (この関数で最初に使用)。Linux でこのソケット オプションを使用できますか、または既に未定義です Linux のすべての in.h ファイルを検索しましたが、何も見つかりませんでした。

スティーブンはそれを使用しますが、彼はタイプします

#ifdef IP_RECVDSTADDR 
.......
#endif
4

2 に答える 2

3

実装用に定義されていない場合は、使用できません。

スティーブンスの本がを使用する理由は、#ifdefそれが定義されていない場合は使用できないためです。

オプションはBSD特定のオプションです。MacOSXとFreeBSDに表示されます

于 2012-10-18T13:06:34.457 に答える
2

推奨されるオプションはIP_PKTINFOまだ BSD であり、OSX はこれを IPv4 に実装していませんIPV6_PKTINFO。同様に興味深いことに、Solaris は両方を定義しています。

したがって、IPv4 を処理するには、プラットフォームごとに固有のコードが必要です。

于 2012-10-18T13:27:44.237 に答える