亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tcpip.h

?? 將tcp/ip應用在mcu上
?? H
?? 第 1 頁 / 共 2 頁
字號:
// TCP標識 TcpHdr_Stru.HdrLen 代表TCP頭長度,以32bit(4 byte)為單位
#define cTCP_HDR_NOOPT		0x05	// TCP頭無操作選項
#define cTCP_HDR_OPT		0x07	// TCP頭有操作選項,操作選項長度4 word 或8 byte
// TCP標識 TcpHdr_Stru.Flags
#define cTCP_FIN			0x01
#define cTCP_SYN			0x02
#define cTCP_RST			0x04
#define cTCP_PSH			0x08
#define cTCP_ACK			0x10
#define cTCP_URG			0x20
	UINT16 WndSize;					// 窗口大小,表明接還能容納的TCP數據(最大0xFFFF)
#define cTCP_WS				1460	// 定義本地窗口,必須滿足條件:cTCP_MSS <= cTCP_MSS <= 0xFFFF
	UINT16 TcpChkSum;
	UINT16 UrgPoint;				// 緊急指針
//	UINT16 OptData[2];
// 最長TCP報文大小(頭選項之一):字節(最大1460)
#define cTCP_MSS     		1460	// 定義本地最大TCP報文長度
}TcpHdr_Stru;

// TCP 本地初始32位序號
extern volatile UINT16 guwISN[2];

// TCP頭的常數指針。
#define cpTcpHdrBuf		((UINT16 *)&guwEthBuf[cEthHdrLen + cIpHdrLen])			// 指向Word的buffer
#define cptTcpHdrBuf	((TcpHdr_Stru *)&guwEthBuf[cEthHdrLen + cIpHdrLen])		// 指向結構

// TCP數據段指針
#define cpTcpData	((UINT16 *)&guwEthBuf[cEthHdrLen + cIpHdrLen + cTcpHdrLen])	// 指向Word的buffer

//---------------------------------------------------------------------------------

// ARP表結構
typedef struct{
	UINT16 IpAddr[2];
	UINT16 EthAddr[3];
	UINT16 Time2;		// 刷新時刻,2Hz的計數
// ARP表記錄的最大老化清除時間:20分鐘(4.4BSD-Lite 默認)。
#define cArpMaxAge 20*60
}ArpEntries_Stru;

// 最大ARP表記錄數
#define cArpTabSize 	16

// 分配ARP鏈表的內存
extern ArpEntries_Stru gstArpTab[cArpTabSize];

// ARP表記錄的地址
#define cptArpTabStart		((ArpEntries_Stru *)&gstArpTab[0])				// 指向結構,開始地址指針
#define cptArpTabEnd		((ArpEntries_Stru *)&gstArpTab[cArpTabSize])	// 指向結構,結束地址指針

//---------------------------------------------------------------------------------

// TCP事務聯接狀態記錄結構
typedef struct{
	UINT16 TcpStateFlags;		// TCP狀態和標識
// TCP 事務狀態標識 Conn_Stru->TcpStateFlags
#define cTCP_CLOSED			0x00
#define cTCP_SYN_RCVD		0x01
#define cTCP_SYN_SENT		0x02
#define cTCP_ESTABLISHED	0x03
#define cTCP_FIN_WAIT_1		0x04
#define cTCP_FIN_WAIT_2		0x05
#define cTCP_CLOSING		0x06
#define cTCP_TIME_WAIT		0x07
#define cTCP_CLOSE_WAIT		0x08
#define cTCP_LAST_ACK		0x09
#define cTCP_TS_MASK		0x0f
#define cTCP_OUTSTANDING	0x10
#define cTCP_STOPPED		0x20
	UINT16 LocalPort;			// 本地端口
	UINT16 RemotePort;			// 遠端端口
	UINT16 RemoteIpAddr[2];		// 遠端IP
	UINT16 RcvNum[2];			// 下次接收包的遠端32位Seq序號
	UINT16 AckNum[2];			// 下次接收包的遠端32位Ack序號
  	UINT16 SeqNum[2];		    // 本地當前包32位Seq序號
	UINT16 MaxSegSize;          // 本連接事務使用的最長TCP報文大小,詳見TCP頭結構說明
	UINT16 Timer;				// 狀態需要等待的時間
	UINT16 NumRetran;			// 重傳次數
	UINT16 PollTime;			// 空閑時間計數
// 由于TCP事務輪詢時間為1秒,所以300秒空閑就異常終止當前連接。(WIN2K用900秒)
#define cTCP_MAX_POLL	300
}Conn_Stru;

// TCP最大聯接事務數。
#define cMaxConnetions		16

// 分配TCP最大聯接事務鏈表內存
extern Conn_Stru gstConns[cMaxConnetions];

// TCP最大聯接事務記錄表首地址
#define cptConnsStart		((Conn_Stru *)&gstConns[0])				// 指向結構
// TCP最大聯接事務記錄表結束地址
#define cptConnsEnd		((Conn_Stru *)&gstConns[cMaxConnetions])	// 指向結構

// 用于RTT估計器的重傳指數退避時間,公式: T = cTCP_RTO * 2^n (n表示第幾次重傳)
#define cTCP_RTO	3

// TCP超時關閉聯接的時間,即在TIME_WAIT狀態的聯接保持時間
#define cTCP_TIME_WAIT_2MSL		120		// 120 秒(因為TCP事務1秒輪詢1次)

// TCP最大重傳次數
#define cTCP_MAXRTX		3

// 本地TCP端口范圍
#define cLocalPortStart	4096	// 開始:0x1000
#define cLocalPortEnd	28672	// 結束:0x7000

// TCP最大偵聽端口數。除非作為Web服務器,否則通常為1
#define cMaxListenPorts		8	// 本應用允許偵聽端口

// 當前TCP事務聯接指針
extern Conn_Stru *gptConn;

// 分配TCP偵聽端口號鏈表內存
extern UINT16 guwListenPorts[cMaxListenPorts];

//---------------------------------------------------------------------------------

// 其它定義

// 正在處理包的字節長度(byte)。這個值隨處理正在處理的協議層的不同而改變!
extern volatile UINT16 guwEthLen;

// TCP/IP協議棧和應用程序間通訊的變量
extern volatile UINT16 guwFlags;
// 協議層通過guwFlags與應用層的聯系常數定義
#define cTCP_ACKDATA	0x01	// 上次發的數據已經被確認,通知應用程序可以發新的數據
#define cTCP_NEWDATA	0x02	// 遠端發給本地數據包,協議層需要ACK回應
#define cTCP_REXMIT		0x04	// 通知應用程序重發上次的數據包
#define cTCP_POLL		0x08	// 如果應用程序等待發數據,就給它一個標識POLL
#define cTCP_CLOSE		0x10	// 遠端已經關閉聯接,或應用程序要關閉聯接
#define cTCP_ABORT		0x20	// 遠端要放棄聯接,或應用程序要放棄聯接
#define cTCP_CONNECTED	0x40	// 聯接成功建立
#define cTCP_TIMEDOUT	0x80	// 超過重傳次數,放棄聯接

// cTCP_DATA:msip_Process()的入口參數,表示需要處理已經在guwEthBuf緩沖區的包。
// cTCP_TIMER:msip_Process()的入口參數,表示需要做周期性的TCP事務處理。
#define cTCP_DATA    1
#define cTCP_TIMER   2

//---------------------------------------------------------------------------------
// 以太收發功能

// ether_Send(): 發送以太包宏定義,兼容性定義
#define ether_Send()		RTL8019AS_TX(guwEthLen, cpEthHdrBuf)

// ether_Receive(): 接收以太包宏定義,兼容性定義
#define ether_Receive()		RTL8019AS_RX(cpEthHdrBuf)

//---------------------------------------------------------------------------------
// ARP 功能過程

// msip_Arp_Timer():ARP表老化掃描,每8秒執行1次(BSD default 10 seconds)
// 超過20分鐘(BSD default)未變化的,將被刪除!
extern void msip_Arp_Time(void);

// msip_Arp_Update():ARP表更新過程。
// uwIpAddr:IP地址
// uwEthAddr:物理地址
// 返回更新的ARP表的地址。如果地址在表外,說明更新失敗。
extern ArpEntries_Stru *msip_Arp_Update(UINT16 *uwIpAddr, UINT16 *uwEthAddr);

// msip_Arp_In():如果檢測到ARP包輸入就執行。
// 如果遠端ARP請求,過程發送ARP回應。
// 如果遠端ARP回應,過程更新ARP表。
extern void msip_Arp_In(void);

// msip_Arp_Out():將待發送的IP包封裝以太頭,并發送封裝好的以太包
// pARPTAB:指向ARP表中遠端IP和物理地址的影射表記錄地址
//       如果pARP是空指針,原IP包將被破壞,并且用ARP請求包替代發送。
extern void msip_Arp_Out(ArpEntries_Stru *pARPTAB);

//---------------------------------------------------------------------------------
// TCP/IP 功能:

// msip_TcpChkSum():TCP/IP校驗和過程。
extern UINT16 msip_TcpChkSum(void);

// msip_Process(): TCP/IP 全處理過程
// uwFlag:處理類型,見cTCP_DATA和cTCP_TIMER
// pConn:TCP事件指針
extern void msip_Process(UINT16 uwFlag);

// 系統接口類:

// msip_Init(): TCP/IP功能初始化,必須在其它TCP/IP處理前調用。包含ARP、被動偵聽端口和TCP事務連接
extern void msip_Init(void);

// msip_Periodic(): TCP/IP事務周期輪詢過程,1秒發生1次
extern void msip_Periodic(void);

// msip_Input(): 如果輸入的是IP包,接執行改過程。
#define msip_Input()	msip_Process(cTCP_DATA)

// msip_APPCALL(): 供用戶寫TCP應用代碼的函數名。
#define userapp		msip_APPCALL	// 指向RS232應用

// 應用程序接口類:(應用層控制協議層狀態變遷)

// msip_Listen(): TCP/IP被動偵聽本地端口是否被占用!用于服務端
// uwPort:本地TCP端口
// 返回0:表示端口被用
// 返回1:表示建立成功
extern UINT16 msip_Listen(UINT16 uwPort);

// msip_Connect(): TCP/IP建立主動聯接遠端,用于客戶端
// uwLocalPort:本地TCP端口
// puwRemoteIpAddr:遠端IP地址
// uwRemotePort:遠端TCP端口
// 返回0:表示建立失敗
// 返回1:表示建立成功
#if  TCP_ACTIVE_OPEN == 1
extern UINT16 msip_Connect(UINT16 uwLocalPort, UINT16 *puwRemoteIpAddr, UINT16 uwRemotePort);
#endif

// msip_Send():發送數據到當前的連接,保留的uIP定義,我們不用
#define msip_Send()

// msip_DataLen():當前TCP數據段的長度(Bytes),保留的uIP定義,我們不用
#define msip_DataLen()		guwEthLen

// msip_Close(): 主動關閉當前連接,應用層通知協議層正常關閉當前連接(FIN)
#define msip_Close()	(guwFlags = cTCP_CLOSE)

// msip_Abort():異常關閉當前連接,應用層通知協議層復位當前連接(RST)
#define msip_Abort()	(guwFlags = cTCP_ABORT)

// msip_Stop(): 停止接收含TCP數據段的包,應用層通知協議層將窗口尺寸設置為0,期待遠端暫停發送帶數據的TCP包!
#define msip_Stop()		(gptConn->TcpStateFlags |= cTCP_STOPPED)

// msip_Restart(): 重新開始當前的連接,應用層通知協議層重新開放窗口尺寸,以便允許遠端發送帶數據的TCP包!
#define msip_Restart()	{guwFlags |= cTCP_NEWDATA; 	gptConn->TcpStateFlags &= ~cTCP_STOPPED;}

// 測試判斷接口類:(應用層查詢協議層狀態)

// msip_connected():
// 服務或服務都有效,表明當前連接建立成功!狀態只會出現一次!
// 在客戶模式可以傳TCP數據;服務模式最好不發送數據!
#define msip_Connected()	(guwFlags & cTCP_CONNECTED)

// msip_Poll():
// 不論是服務或客戶,都表明協議層處于連接空閑狀態!標識由TCP事件輪詢傳回,在這個狀態下可設置
// 空閑計數器記錄空閑次數,達到一定時間就異常終止連接!如果這樣做,就不能在這個狀態發送數據!
// 允許發送數據的條件是:((guwEthLen > 0) || (guwFlags & cTCP_NEWDATA))
#define msip_Poll()		(guwFlags & cTCP_POLL)

// msip_NewData():處于ESTABLELISH狀態
//(guwEthLen > 0)協議層收到遠端發出TCP數據包,并期待應用層處理:在這個狀態下,允許只
// 發送無TCP數據的ACK確認(設置:guwEthLen = 0),或者發送帶TCP數據的ACK確認(把要發送的
// TCP數據長度設置給guwEthLen)。
#define msip_NewData()	(guwFlags & cTCP_NEWDATA)

// msip_Acked():處于ESTABLELISH狀態
//(guwEthLen = 0)協議層收到遠端發出ACK確認包。在這個狀態下,允許發送帶TCP數據的ACK
// 確認(把要發送的TCP數據長度設置給guwEthLen),或者不響應。
#define msip_Acked()		(guwFlags & cTCP_ACKDATA)

// mip_Reset_Acked(): 清除確認后的標志,好象沒有用?!(也許用于重傳)
#define mip_Reset_Acked()	(guwFlags &= ~cTCP_ACKDATA)

// msip_Rexmit(): 應用層上次的以發數據需要重傳,標識由TCP事件輪詢傳回!應用層不允許更改guwEthLen的值!!!
#define msip_Rexmit()	(guwFlags & cTCP_REXMIT)

// msip_Stopped(): 當前連接已經停止接收含TCP數據段的包,連接是正常的。
#define msip_Stopped()	(gptConn->TcpStateFlags & cTCP_STOPPED)

// msip_Aborted(): 當前連接已經異常關閉,協議層發送RST復位包。
#define msip_Aborted()	(guwFlags & cTCP_ABORT)

// msip_Closed(): 當前連接已經正常關閉,應用層發送FIN包
#define msip_Closed()	(guwFlags & cTCP_CLOSE)

// msip_TimedOut(): 當前連接時間溢出,并且連接因時間溢出異常關閉,協議層發送RST復位包。
#define msip_TimedOut()	(guwFlags & cTCP_TIMEDOUT)

// 附加接口類:-------------------------------------------------------------------

// msip_MSS(): 讀 TCP/IP 的MSS,以決定將要發送的數據長度遠端是否能接受。
#define msip_MSS()		(gptConn->MaxSegSize)

//--------------------------------------------------------------------------------------


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看地址| 青娱乐精品在线视频| 东方aⅴ免费观看久久av| 国产网站一区二区| 岛国精品在线观看| 综合久久久久综合| 欧美色视频在线观看| 日韩国产成人精品| 久久欧美中文字幕| 91啪九色porn原创视频在线观看| 亚洲人成网站精品片在线观看| 在线中文字幕一区| 老司机精品视频导航| 国产日韩亚洲欧美综合| www.亚洲色图.com| 亚洲动漫第一页| 精品国产麻豆免费人成网站| 国产成人精品一区二区三区四区| 亚洲欧美在线视频观看| 欧美日韩中文一区| 风流少妇一区二区| 亚洲电影中文字幕在线观看| 精品日韩在线观看| 91在线观看一区二区| 午夜精品久久久久久久99樱桃| 欧美大胆人体bbbb| 91同城在线观看| 免费成人深夜小野草| 国产精品嫩草99a| 欧美日韩免费视频| 国产suv一区二区三区88区| 亚洲精品国产成人久久av盗摄| 69堂国产成人免费视频| 成人高清在线视频| 日韩高清一区二区| 亚洲欧洲日本在线| 精品国产一二三区| 欧美日韩国产综合一区二区三区 | 99精品欧美一区| 日本午夜一本久久久综合| 日本一区二区三级电影在线观看| 欧美四级电影在线观看| 成人综合婷婷国产精品久久| 亚洲h在线观看| 国产精品麻豆久久久| 337p亚洲精品色噜噜| 色综合中文字幕国产 | 日韩影院在线观看| 中文字幕在线观看不卡| 欧美mv日韩mv国产网站app| 在线中文字幕一区二区| 粉嫩av一区二区三区粉嫩| 久久电影网电视剧免费观看| 洋洋av久久久久久久一区| 中文字幕免费不卡在线| 日韩一级黄色片| 欧美日韩黄视频| 日本高清无吗v一区| 成人三级伦理片| 国产米奇在线777精品观看| 青青国产91久久久久久| 亚洲国产综合91精品麻豆| 自拍偷拍国产亚洲| 国产精品久久久久久亚洲毛片 | 欧美96一区二区免费视频| 一区二区三区免费网站| 国产精品动漫网站| 国产精品久久久久久久久免费桃花 | 91精品麻豆日日躁夜夜躁| 欧美午夜一区二区| 欧美自拍偷拍午夜视频| 色94色欧美sute亚洲线路二| 99麻豆久久久国产精品免费优播| 成人性视频免费网站| 大桥未久av一区二区三区中文| 国内精品伊人久久久久av一坑 | 精品在线一区二区| 久久99精品国产.久久久久| 久久国产尿小便嘘嘘尿| 久久国内精品视频| 国产一区二区久久| 成人综合在线视频| 99久久99久久精品免费观看| 99精品在线观看视频| av资源网一区| 欧美性做爰猛烈叫床潮| 欧美日韩一区 二区 三区 久久精品| 欧美综合久久久| 制服.丝袜.亚洲.另类.中文| 91精品啪在线观看国产60岁| 欧美videos大乳护士334| 久久精品一区二区| 亚洲欧洲成人精品av97| 亚洲图片一区二区| 精品一区二区在线视频| 豆国产96在线|亚洲| 91丨porny丨最新| 欧美美女bb生活片| 欧美va天堂va视频va在线| 国产情人综合久久777777| 一区二区三区四区精品在线视频| 亚洲国产精品一区二区久久恐怖片 | 亚洲一区在线观看视频| 五月天亚洲婷婷| 国产成人午夜精品影院观看视频| 成人av网站大全| 欧美丰满美乳xxx高潮www| 久久夜色精品国产噜噜av| 国产精品女上位| 天天操天天色综合| 国产成人精品亚洲午夜麻豆| 在线中文字幕一区二区| 精品av综合导航| 亚洲精品视频一区二区| 日本亚洲天堂网| 国产91丝袜在线播放九色| 欧美日韩成人综合天天影院| 国产色综合久久| 亚洲小少妇裸体bbw| 国产一区二区影院| 欧美在线|欧美| 国产精品毛片大码女人| 水野朝阳av一区二区三区| 国产成人夜色高潮福利影视| 欧美中文字幕久久 | 久久亚洲一区二区三区四区| 亚洲精品伦理在线| 久久国产乱子精品免费女| 91视频www| 欧美大片一区二区三区| 亚洲综合偷拍欧美一区色| 国产成人一级电影| 欧美一区二区成人6969| 亚洲免费成人av| 国产成人av一区二区三区在线| 在线亚洲精品福利网址导航| 久久网这里都是精品| 午夜精品久久久久久| 91麻豆国产精品久久| 国产婷婷一区二区| 麻豆久久一区二区| 欧美日韩在线直播| 一区二区三区四区在线| a级精品国产片在线观看| 精品国产乱码久久久久久浪潮| 一区二区三区在线影院| jiyouzz国产精品久久| 精品电影一区二区| 日韩黄色在线观看| 欧美亚洲动漫精品| 亚洲精品一二三区| 91亚洲精华国产精华精华液| 国产视频一区不卡| 国产一区二区影院| 久久这里只有精品6| 久久成人精品无人区| 欧美电影一区二区三区| 亚洲一区二区三区四区中文字幕| 99免费精品在线观看| 亚洲欧美中日韩| 97久久精品人人澡人人爽| 中文天堂在线一区| 成人免费视频一区二区| 国产欧美精品一区二区色综合朱莉| 精品在线亚洲视频| 精品国偷自产国产一区| 久久av老司机精品网站导航| 91精品国产色综合久久不卡电影| 亚洲国产精品自拍| 欧美高清精品3d| 久久机这里只有精品| 精品国产一区二区三区av性色| 国产在线观看一区二区| 国产色爱av资源综合区| 国产成人精品一区二区三区四区| 国产欧美日韩综合精品一区二区| 国产福利精品一区| 国产精品看片你懂得| 91麻豆精品一区二区三区| 亚洲综合一区二区| 欧美精品一级二级三级| 奇米777欧美一区二区| 欧美大片一区二区三区| 福利一区福利二区| 一区二区三区在线视频观看| 欧美日韩一二三| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品啪在线观看国产60岁| 激情国产一区二区| 国产精品丝袜在线| 欧美主播一区二区三区美女| 日韩av一二三| 久久久精品欧美丰满| 91免费观看国产| 天堂在线一区二区| 久久一区二区视频| 在线观看视频一区| 美国三级日本三级久久99| 国产亚洲精品中文字幕| 91在线观看美女|