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

📄 tcp_ip_cfg.h

📁 很好的网络编程协议源码
💻 H
字号:
#include "stdio.h"
#define IN_RAM 	
#define EX_RAM 			
#define IN_CODE 	
#define USE_DATA 
//#define Big_End	
#define Little_End
#define MAX_REC_BUFF 	1
union  REC_BUFF_UNION
	{
		uint32	Dwords[384];
		uint16	words[768]; 
		uint8 	bytes[1536];
	};
	
#define IN_RAM 	
#define EX_RAM 			
#define IN_CODE 	
#define USE_DATA 	
#define ETHERNET_EXT 


#define MAX_NET_PORT	0x01 
#define MAX_ARP_TERM	50
#define	MAX_TCP_DATA	1460


#define	MAX_TCP_UDP_DATA_link_buf_len	16384
#define MAX_TCP_LINKS   15
#define MAX_UDP_LINKS   4 


/* I P在首部中存入一个长度为
8 b i t的数值,称作协议域。1表示为I C M P协议,2表示为I G M P协议,6表示为T C P协议,1 7表
示为U D P协议*/
#define ICMP 1  
#define IGMP 2
#define TCP  6
#define UDP  17 

/*定义MAC_IP地址表的长度*/
#define Maximum_Item_for_MAC_IP_MAPTABLE  100





#define MAX_UDP_Listening_Ports 20
#define MAX_TCP_Listening_Ports 20	


/*本地端口分配表的长度*/
#define MAX_Local_PORT_Pool_SIZE 100


#define IP_PACKET 0x0008
#define ARP_PACKET 0x0608

typedef struct  {   
                    uint8 	DestMacId[6];    	/*目的网卡地址*/
                    uint8 	SourceMacId[6];   	/*源网卡地址*/
                    uint16 	NextProtocal;       /*下一层协议*/
                    } ipethernet;
                    
struct 	_pkst{
					struct _pkst 	*STPTR;
					unsigned int 	length;
					unsigned char	*DAPTR;
				};//typedef 

struct 	a_t{
					unsigned char	TTL;
					unsigned char 	IP_NUM[4];
					unsigned char	MAC_NUM[6];
				};
union   w {  uint32 	dwords;
             struct {uint16 	 low;uint16 	 high;}words;
	  	     struct {uint8 	byte0;uint8  byte1;uint8 	byte2;uint8 	byte3;}bytes;
          };
          
typedef struct 	{
			uint8	My_Ip[4];
			uint8	My_Gateway[4];
			uint8	My_Ip_Mark[4];
			uint8	My_Mac[6];
			uint8	My_Gateway_Mac[6];
			uint8	Gateway_IP_TTL;
			struct a_t ARP_TERM[MAX_ARP_TERM];
		} NetP;


typedef struct{                   
                   u8  DEST_Port[2];
                   u8  SRC_Port [2];
                   u8  DEST_IP_Address[4];
                   u8  SRC_IP_Address [4];
                   u8  UDP_Buff_Queue[MAX_TCP_UDP_DATA_link_buf_len];
                   u8  Queue_Full;
                   u8  EN;
                   u16 Queue_Rear;
                   u16 Queue_Front;
                   u8  SRC_SN[4];
                   u8  DEST_SN[4];
                   u8  SRC_WIN[2];
                   u8  DEST_WIN[2];
                   u8  PROTOCOL;
                   u8  status;
                   u8  ACK_Unsended;
                   u16 last_pkt_len;
                   u32 timeout_ack;
                   u32 timeout;
                   u8  type;
                   
}SOCKET;



struct UDP_Header{
                     u16 SRC_Port;
                     u16 DEST_Port;
                   
                     u16 UDP_Len;
                     u16 checksum;
};

struct TCP_Header{
                     u16 SRC_Port;
                     u16 DEST_Port;
                     u32 SN;
                     u32 SN_For_Confirm;
                     u16 Control;
                     u16 Win;
                     u16 checksum;
                     u16 Urgent_Ptr;
                     u8  Optional_Item[8];
};
struct sockaddr{
  u8 sin_family;
  u8 sin_addr[4];
  u16 sin_port;
};
#define UDP_PROTOCOL 0
#define TCP_PROTOCOL 1

#define Listening 1
#define NOT_Listening 0

/*TCP_Socket的状态宏定义*/
#define Closed 0
#define Link_established 1
#define Half_closed  2  /*半关闭状态*/
#define Data_Transmition_State 3


/*TCP 首部标记比特*/
#define URG (1 << 5)
#define ACK (1 << 4)
#define PSH (1 << 3)
#define RST (1 << 2)
#define SYN (1 << 1)  
#define FIN 1 

/************** first Net Port Config **************************/
#define My_Mac_1ID 		{0x12,0x34,0x56,0x78,0x9a,0xbc}//将RTL8019的物理地址存储在程序空间?
#define IP_MARK_1ID 	{255,255,255,0} 		//255.255.255.0,子网掩码
#define MY_IP_1ID       {192,168,0,174}
#define MY_GATEWAY_1ID  {192,168,0,1}
/**************End Net Port Config **************************/


⌨️ 快捷键说明

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