0

私はいくつかのネットワークプログラミングを行っています。tcp および ip ヘッダーを作成しようとしています。これを行うには、1) Linux ベースと 2) BSD ベースの 2 つの方法があることを読み物で見つけました。

基本的にlinux/ip.hとlinux/tcp.hを含むlinuxメソッドを使用してこれを行いたいです私が探しているヘッダータイプは

     struct tcphdr {
    unsigned short source;
    unsigned short dest;
    unsigned long seq;
    unsigned long ack_seq;  
    unsigned short doff:4;
    unsigned char syn;
    unsigned short window;  
    unsigned short check;
    unsigned short urg_ptr;

};

しかし、私はこれを取得しています:

    struct tcphdr {
       u_short th_sport;
       u_short th_dport;
       tcp_seq th_seq;
       tcp_seq th_ack;
       u_int   th_x2:4,
             th_off:4;
       u_char  th_flags;
       u_short th_win;        
       u_short th_sum;        
       u_short th_urp;        
 };

現在、これを c++ でコーディングするために Mac で Xcode を使用しています。ただし、#include を実行すると、「ヘッダー ファイルが見つかりません」というエラーが表示されます。

どうすればこれを修正できますか?

4

1 に答える 1

0

回答を編集しました。

/usr/include/netinet/tcp.h (および ip.h) をユーザー空間に含める必要があります。.../linux/*.h は、デバイス ドライバー、モジュール、およびカーネル コードで使用されます。

BSD 宣言を使用する場合は、_BSD_SOURCE を定義します。

于 2013-11-11T03:55:30.260 に答える