我正在做一些网络编程。我正在尝试创建tcp和ip标头。我在读数中发现,有两种方法可以做到这一点:1)基于linux和2)基于BSD。
我想使用linux方法,主要包括linux / ip.h和linux / tcp.h 我正在寻找的标题类型是
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;
};
现在,我在mac上使用Xcode在c ++中编码。但是,当我执行#include时,它会给出一个“未找到头文件”的错误
任何人都可以告诉我如何解决这个问题?
答案 0 :(得分:0)
我已经编辑了我的回复。
您应该在用户空间中包含/usr/include/netinet/tcp.h(和ip.h)。 ... / linux / * .h由设备驱动程序,模块和内核代码使用。
如果要使用BSD声明,请定义_BSD_SOURCE。