⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eth_typedef.h

📁 我自己写的一个tcp/ip的代码
💻 H
字号:
#define TCP_MAX_WINDOWS_SIZE			500
#define TCP_MAX_CONNECT_SIZE			10
#define HW_LEN							6
#define IP_VER							4

//socket defined
typedef struct {
	unsigned long his_ip_address;
	unsigned int  his_port;
	unsigned int  my_port;
	unsigned long his_sequence;
	unsigned long my_sequence;
	unsigned long old_sequence;
	unsigned long his_ack;
	unsigned int  flags;
	unsigned char states;
	unsigned int  times;
	unsigned char rece_OK;
	unsigned int  rece_len;
	unsigned char rece_data[TCP_MAX_WINDOWS_SIZE];
	unsigned char inst_data[32];
} TCP_SOCKET;
extern TCP_SOCKET Socket[TCP_MAX_CONNECT_SIZE];
//TCP_SOCKET states
#define STATE_CLOSED					0
#define STATE_LISTEN					1
#define STATE_SYN_RCVD					2
#define STATE_SYN_SENT					3
#define STATE_ESTABLISHED				4
#define STATE_CLOSE_WAIT				5
#define STATE_LAST_ACK					6
#define STATE_FIN_WAIT_1				7
#define STATE_FIN_WAIT_2				8
#define STATE_CLOSING					9
#define STATE_TIME_WAIT					10

//eth defined
typedef struct {
	unsigned char dest_hw_address[HW_LEN];
	unsigned char sour_hw_address[HW_LEN];
	unsigned int  frame_type;
} ETH_HEADER;
//frame_type
#define ARP_PACKET						0x0806
#define IP_PACKET						0x0800

typedef struct {
    unsigned char ver_len;                          //版本与首部长度,1字节。
    unsigned char type_of_service;                  //服务类型,1字节。
    unsigned int  total_length;                     //IP数据报长度,2字节。
    unsigned int  identifier;                       //验证标志,2字节。
    unsigned int  fragment_info;                    //分片信息,2字节。
    unsigned char time_to_live;                     //生存时间,1字节。
    unsigned char protocol_id;                      //协议号,1字节。
    unsigned int  header_cksum;                     //IP首部校验和,2字节。
    unsigned long sour_ip_address;                  //源IP地址,4字节。
    unsigned long dest_ip_address;                  //目的IP地址,4字节。
} IP_HEADER;
//protocal_id
#define ICMP_TYPE						1
#define IGMP_TYPE						2
#define TCP_TYPE						6
#define UDP_TYPE						17

typedef struct
{
	unsigned int  sour_port;
	unsigned int  dest_port;
	unsigned long sequence;
	unsigned long ack_number;
	unsigned int  flags;
	unsigned int  window;
	unsigned int  checksum;
	unsigned int  urgent_ptr;
	unsigned char options;
} TCP_HEADER;
// TCP flag bits
#define FLG_FIN							0x0001
#define FLG_SYN							0x0002
#define FLG_RST							0x0004
#define FLG_PSH							0x0008
#define FLG_ACK							0x0010
#define FLG_URG							0x0020


//my settings
typedef struct {
	unsigned char hw_address[HW_LEN];
	unsigned char broadcast[HW_LEN];
	unsigned long ip_address;
	unsigned long gw_address;
	unsigned long submask;
	unsigned int  tcp_port;
} NETSET;
extern NETSET my;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -