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

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

?? tcp_ip.h

?? 適用于8位小型嵌入式系統的TCP/IP協議棧!!移植非常方便!
?? H
?? 第 1 頁 / 共 2 頁
字號:
#define TCP_STATE_TIMED_WAIT	11	/**< Waiting for 2MSL to prevent
									 *	 erroneous connection duplication
									 */
#define	TCP_STATE_CONNECTED		12	/**< Connection established and data
									 *	 flowing freely to both sides :-)
									 */



/* TCP callback events			*/

/** \def TCP_EVENT_CONREQ
 *	\brief Connection request event
 *	
 *	Connection request event is notified to TCP server applications'
 *	event listener when SYN packet is received for it's socket. Event
 *	listener can then, if it wants to, inspect IP addres and port number
 *	of the remote host, or some other internal parameters, to decide
 *	whether it should allow connection establishment or not. One of the
 *	following values must then be returned from the event listener:
 *		\li -1 - do not allow connection to be established. RST packet will
 *		be sent to remote host.
 *		\li	-2 - do not respond to this particular SYN packet (keep quiet).
 *		This may be used if device is somehow busy and not yet ready to
 *		establish a connection, but doesn't wan't to forcefully reject the
 *		connection with a RST packet.
 *		\li 1 - allow connection to be established
 */
#define TCP_EVENT_CONREQ		1

/** \def TCP_EVENT_CONNECTED
 *	\brief Connection established event
 *
 *	Applications' event listener is informed by this event that
 *	connection is established and that it may start sending/receiving
 *	data.
 */

#define TCP_EVENT_CONNECTED		2

/** \def TCP_EVENT_CLOSE
 *	\brief Connection closed event
 *
 *	TCP connection was properly closed (either by calling tcp_close() by
 *	application or remote host initialized closing sequence).
 */
#define TCP_EVENT_CLOSE			4

/** \def TCP_EVENT_ABORT
 *	\brief Connection aborted event
 *
 *	Connection is, for some reason, aborted. This can happen for a number
 *	of reasons:
 *		\li Data retransmissions performed sufficient number of times but
 *		no acknowledgment was received
 *		\li No response for some time to keep-alive packets
 *		\li Remote host forcefully closed the connection for some reason
 *		\li Application invoked tcp_abort() function
 */
#define TCP_EVENT_ABORT			8

/** \def TCP_EVENT_ACK
 *	\brief Data acknowledged event
 *
 *	TCP/IP stack has received correct acknowledgment packet for the 
 *	previously sent data and is informing the application about it.
 *	After this event, application can send new data packet to remote
 *	host.
 */
#define TCP_EVENT_ACK			16

/** \def TCP_EVENT_REGENERATE
 *	\brief Regenerate data event
 *
 *	Previously sent data packet was not acknowledged (or the acknowledgment
 *	packet did not arrive) so retransmission needs to be peformed.
 *	Application must resend the data that was sent in the previous packet.
 */
#define TCP_EVENT_REGENERATE	32

/** \def TCP_EVENT_DATA
 *	\brief Data arrival event
 *
 *	TCP received some data from remote host and is informing application
 *	that it is available for reading from the Ethernet controller.
 */
#define	TCP_EVENT_DATA			64



/* TCP and UDP buffer handling			*/

/** \def TCP_APP_OFFSET
 *	\brief Transmit buffer offset for TCP applications
 *
 *  This value defines offset that TCP applications must use when
 *	writing to transmit buffer. This many bytes will be used
 *	<b>before</b> the first byte of applications data in the 
 *	transmit buffer to store TCP header.
 */
#define TCP_APP_OFFSET			MIN_TCP_HLEN		/* Application buffers must have 	*/
													/* this much free on start of buf	*/

/** \def UDP_APP_OFFSET
 *	\brief Transmit buffer offset for UDP applications
 *
 *  This value defines offset that UDP applications must use when
 *	writing to transmit buffer. This many bytes will be used
 *	<b>before</b> the first byte of applications data in the 
 *	transmit buffer to store UDP header.
 */

#define UDP_APP_OFFSET			UDP_HLEN



/* UDP Structures			*/

/** \struct udp_frame
 *	\brief UDP header information
 *
 *	This structures' fields are used to hold information about the headers
 *	of the received UDP packet. 
 *
 *	In addition to standard UDP header fields, buf_index field
 *	has been added allowing applications to re-read the received data many
 *	times by reinitializing reading based on the address stored in this
 *	field.
 */
struct udp_frame
{
	UINT16 sport;		/**< Source port					*/
	UINT16 dport;		/**< Destination port				*/
	UINT16 tlen;		/**< total len (UDP part)			*/
	UINT16 checksum;	/**< UDP checksum					*/
	UINT16 buf_index;	/**< Data offsett from the start
						 * 	 of network buffer			
						 */
};

/** \struct ucb
 *	\brief UDP control block
 *
 *	This structure holds various fields used to keep track of UDP socket
 *	states, settings and event listener function.
 *
 */
struct ucb
{
	/** \brief State of socket entry
	 *
	 *	This variable holds state of a particular UDP socket entry 
	 *	in the UDP socket table. Following values are possible:
	 *		\li UDP_STATE_FREE
	 *		\li UDP_STATE_CLOSED
	 *		\li UDP_STATE_OPENED
	 */
	UINT8 	state;		
	
	/** \brief Type of service allocated for a socket
	 *
	 *	For now no services implemented so this value
	 *	is not important.
	 */	
	UINT8	tos;

	UINT16	locport;	/**< Local UDP port of Socket		*/
	
	/** \brief Socket options 
	 *
	 *	Currently, this holds information about checksum calculation
	 *	options. Can be one of the following:
	 *		\li	UDP_OPT_NONE - cheksum calculation not performed
	 *		\li UDP_OPT_SEND_CS - checksum is calculated for outgoing
	 *		UDP packets
	 *		\li UDP_OPT_CHECK_CS - checksum is checked for incoming
	 *		UDP packets
	 *		\li UDP_OPT_SEND_CS | UDP_OPT_CHECK_CS - both checksum
	 *		calculations are enabled
	 */
	UINT8	opts;		
	
	/** \brief UDP socket application event listener
	 *
	 *	Pointer to a event listener - a callback function used
	 *	by TCP/IP stack to notify application about certain events.
	 */	
	INT32 	(*event_listener)
			(INT8, UINT8, UINT32, UINT16, UINT16, UINT16 );
}; 



/* TCP Structures			*/

/** \struct tcp_frame
 *	\brief TCP header information
 *
 *	This structure holds header fields from the received TCP packet. 
 *
 *	In addition to standard header fields, buf_index field
 *	has been added allowing applications to re-read the received data many
 *	times by reinitializing reading based on the address stored in this
 *	field.
 */
struct tcp_frame
{
	UINT16	sport;						/**< Source port					*/
	UINT16	dport;						/**< Destination port				*/
	UINT32	seqno;						/**< Sequence number				*/
	UINT32	ackno;						/**< Acknowledgement number		*/
	UINT16	hlen_flags;					/**< Header length and flags		*/
	UINT16 	window;						/**< Size of window				*/
	UINT16 	checksum;					/**< TCP packet checksum			*/
	UINT16 	urgent;						/**< Urgent pointer				*/
	UINT8	opt[MAX_TCP_OPTLEN + 1];	/**< Option field					*/
	UINT16	buf_index;					/**< Next offset from the start of
										 *   network buffer				
										 */	
};

/** \struct tcb
 *	\brief TCP transmission control block
 *
 *	This structure holds various fields used to keep track of TCP socket
 *	states, settings and event listener function. It is needed to ensure
 *	proper operation of TCP state machine and TCP connections based on it.
 *
 *	
 */
struct tcb
{
	/** \brief State of the TCP socket [entry]
	 *
	 *	This variable holds information used by the OpenTCP to manage
	 *	sockets as well as information needed to manage TCP connection.
	 *	Possible values are:
	 *		\li TCP_STATE_FREE
	 *		\li TCP_STATE_RESERVED
	 *		\li TCP_STATE_CLOSED
	 *		\li TCP_STATE_LISTENING
	 *		\li TCP_STATE_SYN_RECEIVED
	 *		\li TCP_STATE_SYN_SENT
	 *		\li TCP_STATE_FINW1
	 *		\li TCP_STATE_FINW2
	 *		\li TCP_STATE_CLOSING
	 *		\li TCP_STATE_LAST_ACK
	 *		\li TCP_STATE_TIMED_WAIT
	 *		\li TCP_STATE_CONNECTED
	 */
	UINT8	state;						
	
	/** \brief type of the TCP socket
	 *
	 *	Defines type of the TCP socket allocated. This determines
	 *	how connection is established/closed in some cases.
	 *	Possible values are:
	 *		\li TCP_TYPE_NONE
	 *		\li TCP_TYPE_SERVER
	 *		\li TCP_TYPE_CLIENT
	 *		\li TCP_TYPE_CLIENT_SERVER
	 */
	UINT8	type;						
	UINT8	flags;						/**< State machine flags			*/
	UINT32	rem_ip;						/**< Remote IP address			*/
	UINT16	remport;					/**< Remote TCP port				*/
	UINT16	locport;					/**< Local TCP port				*/
	UINT32 	send_unacked;
	UINT8	myflags;					/**< My flags to be Txed			*/
	UINT32	send_next;
	UINT16 	send_mtu;
	UINT16	tout;						/**< Socket idle timeout (seconds)*/
	UINT8	tos;						/**< Type of service allocated */
	UINT32	receive_next;
	UINT16	persist_timerh;				/**< Persistent timers' handle */
	UINT16	retransmit_timerh;			/**< Retransmission timers' handle */
	UINT8	retries_left;				/**< Number of retries left before
										 *	 aborting
										 */
	
	/** \brief TCP socket application event listener
	 *
	 *	Pointer to an event listener - a callback function used
	 *	by TCP/IP stack to notify application about certain events.
	 */
	INT32 	(*event_listener)(INT8, UINT8, UINT32, UINT32);	
	
};

/* ICMP function prototypes	*/

INT16 process_icmp_in(struct ip_frame*, UINT16);

/* UDP Function prototypes */
INT8 udp_init (void);
INT8 udp_getsocket (UINT8 , INT32 (* )(INT8, UINT8, UINT32, UINT16, UINT16, UINT16), UINT8 );
INT8 udp_releasesocket (INT8 );
INT8 udp_open (INT8 , UINT16 );
INT8 udp_close (INT8 );
INT16 udp_send (INT8 , UINT32 , UINT16 , UINT8* , UINT16 , UINT16 );
INT16 process_udp_in(struct ip_frame* , UINT16 );
UINT16 udp_getfreeport(void); 

/*	TCP Function prototypes	*/

INT16 process_tcp_in(struct ip_frame*, UINT16);
INT16 process_tcp_out(INT8, UINT8*, UINT16, UINT16);
INT8 tcp_init(void);
INT8 tcp_listen(UINT8, UINT16);
INT8 tcp_mapsocket(struct ip_frame*, struct tcp_frame*);
UINT8 tcp_check_cs(struct ip_frame*, UINT16);
void tcp_sendcontrol(UINT8);
UINT32 tcp_initseq(void);
void tcp_poll(void);
void tcp_newstate(struct tcb*, UINT8);
INT8 tcp_getsocket(UINT8, UINT8, UINT16, INT32 (*)(INT8, UINT8, UINT32, UINT32) );
INT8 tcp_releasesocket(INT8);
INT8 tcp_connect(UINT8, UINT32, UINT16, UINT16);
INT16 tcp_send(INT8, UINT8*, UINT16, UINT16);
INT8 tcp_close(UINT8);
void tcp_sendreset(struct tcp_frame*, UINT32);
INT8 tcp_getstate(UINT8);
UINT16 tcp_getfreeport(void);
INT16 tcp_checksend(UINT8);
INT8 tcp_abort(UINT8);



#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费视频.com| 天天综合网 天天综合色| 欧美亚洲国产一区在线观看网站| 床上的激情91.| 高清不卡一二三区| 成人av在线资源| 99国产精品久久久| av中文字幕在线不卡| 91婷婷韩国欧美一区二区| 99re成人在线| 欧美性感一区二区三区| 欧美主播一区二区三区| 成人a级免费电影| 国产成人99久久亚洲综合精品| 成人网页在线观看| 91成人免费电影| 欧美高清视频在线高清观看mv色露露十八 | 欧美日韩一区二区欧美激情| 欧美专区亚洲专区| 6080国产精品一区二区| 久久久久久久一区| 亚洲欧美另类小说视频| 午夜精品成人在线| 国产精品一区免费视频| 99久久久久久| 91精品欧美久久久久久动漫| 日本一区二区成人在线| 亚洲欧美日韩电影| 免费看精品久久片| 99久久er热在这里只有精品15| 色偷偷88欧美精品久久久| 91精品婷婷国产综合久久竹菊| 久久久精品2019中文字幕之3| 亚洲美女区一区| 捆绑紧缚一区二区三区视频| 国产一区二区久久| 91丨porny丨蝌蚪视频| 91精品国产综合久久精品麻豆| 精品免费日韩av| 伊人婷婷欧美激情| 精品亚洲aⅴ乱码一区二区三区| 99国产精品视频免费观看| 欧美一级二级在线观看| 18成人在线观看| 国模大尺度一区二区三区| 91久久精品一区二区三| 国产网站一区二区| 全国精品久久少妇| 在线影视一区二区三区| 国产精品久久久久久久久久久免费看 | 精品1区2区在线观看| 国产精品不卡一区| 国产一区91精品张津瑜| 欧美午夜精品一区二区蜜桃| 国产欧美日韩视频一区二区| 亚洲成人中文在线| 91香蕉视频污在线| 中文av一区特黄| 九九久久精品视频| 91精品国产综合久久香蕉的特点| 亚洲视频香蕉人妖| 高清久久久久久| 久久婷婷一区二区三区| 天天色 色综合| 在线免费观看视频一区| 亚洲免费av观看| 色欧美乱欧美15图片| 国产精品网站一区| 福利91精品一区二区三区| 亚洲精品在线网站| 国产一区二区网址| 久久日一线二线三线suv| 蜜桃视频在线观看一区二区| 日韩欧美一区在线观看| 偷偷要91色婷婷| 欧美日韩综合一区| 亚洲国产一区在线观看| 欧美天堂一区二区三区| 亚洲成人av一区| 在线不卡的av| 久久97超碰国产精品超碰| 日韩女同互慰一区二区| 精品一区二区三区在线播放视频 | 国产欧美一区二区精品性| 精品一区二区三区免费毛片爱| 欧美精品乱码久久久久久按摩| 国产欧美精品一区aⅴ影院| 久久成人18免费观看| 亚洲国产精品传媒在线观看| 国产成人精品一区二区三区四区| 欧美国产精品一区二区| 日本黄色一区二区| 亚洲成a人片综合在线| 国产亚洲女人久久久久毛片| 粉嫩一区二区三区性色av| 国产精品传媒视频| 欧美在线免费视屏| 麻豆免费看一区二区三区| 久久久久久免费网| 色偷偷久久一区二区三区| 亚洲图片欧美综合| 久久先锋资源网| 色婷婷国产精品久久包臀| 欧美精品一区二区三区很污很色的| 色久优优欧美色久优优| 欧美午夜精品电影| 91成人国产精品| 日韩电影免费在线看| 2020国产精品久久精品美国| 国产成人激情av| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩一区二区欧美激情| 国产精品亚洲视频| 亚洲资源在线观看| 国产视频在线观看一区二区三区| 在线亚洲欧美专区二区| 精品一区二区三区不卡 | 久久精品欧美日韩| 欧美日韩一区二区在线观看视频 | av高清久久久| 久草精品在线观看| 亚洲成人免费在线| 中文字幕亚洲成人| 久久综合久久综合久久综合| 欧美性xxxxxxxx| 成人成人成人在线视频| 久久精品国产色蜜蜜麻豆| 亚洲一二三级电影| 综合精品久久久| 久久欧美中文字幕| 日韩一区二区在线免费观看| 色综合一个色综合| 成人av动漫在线| 国产99精品在线观看| 男男成人高潮片免费网站| 亚洲一区在线免费观看| 国产精品午夜久久| 国产亚洲一区二区在线观看| 欧美大肚乱孕交hd孕妇| 欧美日韩二区三区| 欧美在线观看你懂的| av电影在线观看完整版一区二区| 国产一二精品视频| 国产在线麻豆精品观看| 麻豆成人综合网| 蜜臀国产一区二区三区在线播放| 午夜电影网亚洲视频| 一区av在线播放| 亚洲一区精品在线| 亚洲午夜羞羞片| 亚洲高清在线视频| 天堂蜜桃91精品| 蜜桃免费网站一区二区三区| 日韩制服丝袜av| 日本不卡一区二区三区| 日韩 欧美一区二区三区| 日本va欧美va瓶| 精品一区二区免费视频| 韩国理伦片一区二区三区在线播放| 久久成人18免费观看| 国产在线日韩欧美| 国产精品99精品久久免费| 成人性生交大合| 不卡一区在线观看| 91蝌蚪国产九色| 欧美人狂配大交3d怪物一区| 91精品国产色综合久久| 精品国产乱码久久久久久闺蜜| 国产亚洲一区二区三区在线观看 | 4438x成人网最大色成网站| 日韩一区二区免费在线观看| 精品对白一区国产伦| 国产精品三级av| 性久久久久久久| 精品在线播放午夜| 成人免费电影视频| 91久久精品日日躁夜夜躁欧美| 欧美在线观看视频一区二区| 精品少妇一区二区三区日产乱码| 国产人成一区二区三区影院| 亚洲激情图片一区| 久久精品国产**网站演员| 福利电影一区二区| 欧美少妇性性性| 2020日本不卡一区二区视频| 亚洲综合一区二区三区| 麻豆一区二区99久久久久| www.久久久久久久久| 欧美一区二区视频在线观看| 亚洲国产精品精华液2区45| 亚洲成av人片在线观看| 成人h动漫精品一区二| 欧美日韩第一区日日骚| 国产精品久久久久久久久久久免费看 | 欧美日精品一区视频| 日本一二三不卡| 日本最新不卡在线| 色呦呦国产精品| 亚洲精品一区二区三区在线观看 | 成人午夜免费电影|