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

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

?? tcp_server_demo.c

?? 用于以太網開發
?? C
字號:
/*
 *Copyright (c) 2000-2002 Viola Systems Ltd.
 *All rights reserved.
 *
 *Redistribution and use in source and binary forms, with or without 
 *modification, are permitted provided that the following conditions 
 *are met:
 *
 *1. Redistributions of source code must retain the above copyright 
 *notice, this list of conditions and the following disclaimer.
 *
 *2. Redistributions in binary form must reproduce the above copyright 
 *notice, this list of conditions and the following disclaimer in the 
 *documentation and/or other materials provided with the distribution.
 *
 *3. The end-user documentation included with the redistribution, if 
 *any, must include the following acknowledgment:
 *	"This product includes software developed by Viola 
 *	Systems (http://www.violasystems.com/)."
 *
 *Alternately, this acknowledgment may appear in the software itself, 
 *if and wherever such third-party acknowledgments normally appear.
 *
 *4. The names "OpenTCP" and "Viola Systems" must not be used to 
 *endorse or promote products derived from this software without prior 
 *written permission. For written permission, please contact 
 *opentcp@opentcp.org.
 *
 *5. Products derived from this software may not be called "OpenTCP", 
 *nor may "OpenTCP" appear in their name, without prior written 
 *permission of the Viola Systems Ltd.
 *
 *THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 
 *WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
 *MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
 *IN NO EVENT SHALL VIOLA SYSTEMS LTD. OR ITS CONTRIBUTORS BE LIABLE 
 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 *CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 *SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 *WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
 *OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 *EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *====================================================================
 *
 *OpenTCP is the unified open source TCP/IP stack available on a series 
 *of 8/16-bit microcontrollers, please see <http://www.opentcp.org>.
 *
 *For more information on how to network-enable your devices, or how to 
 *obtain commercial technical support for OpenTCP, please see 
 *<http://www.violasystems.com/>.
 */

/** \file tcp_server_demo.c
 *	\ingroup opentcp_example
 *	\brief Demonstration of a possible scenario of writing TCP applications
 *	\author 
 *		\li Vladan Jovanovic (vladan.jovanovic@violasystems.com)
 *	\version 1.0
 *	\date 10.10.2002
 *	\bug
 *	\warning
 *		\li This example is given for demonstration purposes only. It
 *		was not tested for correct operation.
 *	\todo
 *  
 *	Blank TCP demo application showing TCP functions and how applications
 *	might use them. Please note that this is an example for a TCP server
 *	application - the kind of application that waits for a connection and
 *	does not initiate connection establishment towards other hosts. 
 */
#include <inet/debug.h>
#include <inet/datatypes.h>
#include <inet/globalvariables.h>
#include <inet/system.h>
#include <inet/tcp_ip.h>



/* The applications that use TCP must implement following function stubs			*/
/* void application_name_init (void) - call once when processor starts				*/
/* void application_name_run (void) - call periodically on main loop				*/
/* INT32 application_name_eventlistener (INT8, UINT8, UINT32, UINT32)				*/
/* - called by TCP input process to inform arriving data, errors etc */

/* These will probably go to some include file */
void tcps_demo_init(void);
void tcps_demo_run(void);
INT32 tcps_demo_eventlistener(INT8 , UINT8 , UINT32 , UINT32 );

/** \brief Socket handle holder for this application
 *
 * This variable holds the assigned socket handle. Note that this application 
 * will reserve one TCP socket immediately and will not release it. For
 * saving resources, TCP sockets can also be allocated/deallocated 
 * dynamically.
 */
INT8 tcps_demo_soch;

UINT8 tcps_demo_senddata; /**< Used to trigger data sending */

#define TCPS_DEMO_PORT	5001 /**< Port number on which we'll be listening for incoming connections */

/* Internal function used for sending data to a predefined host */
INT16 tcps_demo_send(void);

/* Initialize resources needed for the TCP server application */
void tcps_demo_init(void)
{
	
	DEBUGOUT("Initializing TCP server application. \r\n");
		
	/* Get socket:
	 * 	TCP_TYPE_SERVER - type of TCP socket is server
	 * 	TCP_TOS_NORMAL  - no other type of service implemented so far
	 *	TCP_DEF_TOUT	- timeout value in seconds. If for this many seconds
	 *		no data is exchanged over the TCP connection the socket will be
	 *		closed.
	 *	tcps_demo_eventlistener - pointer to event listener function for
	 * 		this socket.	
	 */

	tcps_demo_soch = tcp_getsocket(TCP_TYPE_SERVER, TCP_TOS_NORMAL, TCP_DEF_TOUT, tcps_demo_eventlistener);
	
	if( tcps_demo_soch < 0 )
	{
		DEBUGOUT("TCP server unable to get socket. Resetting!!!\r\n");
		RESET_SYSTEM();
	}
	
	/* Put it to listen on some port	*/
	tcp_listen(tcps_demo_soch,TCPS_DEMO_PORT);
	
	/* for now no data sending */
	tcps_demo_senddata=0;
}

void tcps_demo_run(void)
{
	
	UINT8	i;
	
	/* do maybe some other TCP server app stuff
	 * .....
	 */
	
	if(tcps_demo_senddata){
		if(tcps_demo_send()!=-1)		
			tcps_demo_senddata=0;
	}
}

 /*
 * Event listener invoked when TCP/IP stack receives TCP data for
 * a given socket. Parameters:
 * - cbhandle - handle of the socket this packet is intended for. Check it
 *	just to be sure, but in general case not needed
 * - event - event that is notified. For TCP there are quite a few possible
 *	events, check switch structure below for more information
 * - par1, par2 - parameters who's use depends on the event that is notified
 */
INT32 tcps_demo_eventlistener(INT8 cbhandle, UINT8 event, UINT32 par1, UINT32 par2)
{
/* This function is called by TCP stack to inform about events	*/
	UINT16 i;
	
	if( cbhandle != tcps_demo_soch)		/* Not our handle	*/
		return(-1);
	
	switch( event ){
		
		/* Connection request event. Used by TCP/IP stack to inform
		 * the application someone is trying to establish a connection.
		 * Server can decide, based on provided IP address and port number,
		 * whether to allow or not connection establishment.
		 * Parameters:
		 *  - par1 - remote hosts IP address
		 *  - par2 - remote hosts port number
		 * 
		 * Return values from event listener:
		 * -1 - do not allow connection to be established (send reset)
		 * -2 - do not send any response for now to the SYN packet (let's
		 *		think a little before answering)
		 * 1  - allow connection to be established
		 */
		case TCP_EVENT_CONREQ:
			DEBUGOUT("Connection request arrived!\r\n");
			
			/* Enable all connections	*/
			return(1);
		
			break;
			
		/* Connection abort event. Connection on a given socket is beeing 
		 * aborted for somereason (usually retransmissions are used up or 
		 * some abnormal situation in communication happened).
 		 * Parameters:
		 *  - par1 - remote hosts IP address
		 *  - par2 - remote hosts port number
		 */
		case TCP_EVENT_ABORT:
			DEBUGOUT("Connection aborting!\r\n");
			break;
		
		/* Connection established event - three-way handshaking performed
		 * OK and connection is established.
		 * Parameters:
		 *  - par1 - remote hosts IP address
		 *  - par2 - remote hosts port number
		 */
		case TCP_EVENT_CONNECTED:
			DEBUGOUT("TCP connection established!\r\n");
		
			break;
			
		/* Connection closing event. Happens when TCP connection is
		 * intentionally close by some side calling close function and
		 * initializing proper TCP connection close procedure.
		 * Parameters:
		 *  - par1 - remote hosts IP address
		 *  - par2 - remote hosts port number
		 */
		case TCP_EVENT_CLOSE:
			DEBUGOUT("TCP Connection closing...!\r\n");
			break;
			
		/* Data acknowledgment event. Happens when data that was
		 * previously sent gets acknowledged. This means we can now
		 * send some more data! :-)
		 * Parameters:
		 *  - par1 - remote hosts IP address
		 *  - par2 - remote hosts port number
		 */
		case TCP_EVENT_ACK:
			DEBUGOUT("Data acknowledged!\r\n");
			/* if more data should be sent, adjust variables and
				set tcps_demo_senddata variable */
				
			break;
		
		/* Data received event. Happens when we receive some data over the
		 * TCP connection.
		 * Parameters:
		 *  - par1 - number of data bytes received
		 *  - par2 = 0
		 */
		case TCP_EVENT_DATA:
			DEBUGOUT("Data arrived!\r\n");
			/* read data that was received (and 
			 * probably do something with it :-)
			 */
			for(i=0;i<par1;i++)
				RECEIVE_NETWORK_B();
				
			/* If needed initialize data sending
			 * by setting tcps_demo_senddata variable
			 */
			break;
			
		/* Regenerate data event. Happens when data needs to be
		 * retransmitted because of possible loss on the network.
		 * Note that THE SAME DATA must be sent over and over again
		 * until TCP_EVENT_ACK is generated (for that data)! 
		 * Parameters:
		 *  - par1 - amount of data to regenerate (usually all)
		 *	- par2 = 0
		 */
		case TCP_EVENT_REGENERATE:
			tcps_demo_send();
			break;
	
	
		default:
			return(-1);
	}
}

INT16 tcps_demo_send(void){
	UINT16 i;
	/* first check if data sending is possible (it may be that
	 * previously sent data is not yet acknowledged)
	 */
	if(tcp_checksend(tcps_demo_soch) < 0 ){
		/* Not yet */
		return -1;
	}
	
	/* put message in buffer. Message needs to start from TCP_APP_OFFSET
 	 * because TCP/IP stack will put headers in front of the message to
 	 * avoid data copying
 	 */
	for(i=0;i<32;i++)
		net_buf[TCP_APP_OFFSET+i]='A'+(i%25);

	/* send data */
	return tcp_send(tcps_demo_soch, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, 32);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区视频| 欧美在线影院一区二区| av午夜精品一区二区三区| 在线观看日韩国产| 久久久久9999亚洲精品| 午夜精品视频在线观看| 99久久er热在这里只有精品66| 欧美日本一区二区三区四区| 中文字幕日韩一区二区| 精品写真视频在线观看| 欧美日韩亚洲另类| 亚洲精选免费视频| 成人激情图片网| 26uuu色噜噜精品一区二区| 天天色图综合网| 欧美系列亚洲系列| 一区二区三区蜜桃| 色婷婷综合久久久中文一区二区| 国产欧美一区二区三区网站| 九九精品视频在线看| 91精品福利在线一区二区三区 | 欧美三区在线观看| 国产精品久久久久毛片软件| 久久99精品国产91久久来源| 欧美一区二区国产| 日产国产高清一区二区三区| 欧美绝品在线观看成人午夜影视| 亚洲综合图片区| 色狠狠色狠狠综合| 亚洲精品国产精品乱码不99| 91在线高清观看| 中文字幕日本乱码精品影院| 成人精品电影在线观看| 中国色在线观看另类| 成人免费观看av| 国产精品久久久久aaaa| av一二三不卡影片| 亚洲乱码国产乱码精品精小说| 91视视频在线直接观看在线看网页在线看 | 国产成人亚洲精品青草天美| 国产欧美日韩三区| 97精品国产露脸对白| 一区二区三区高清在线| 欧美性高清videossexo| 日本va欧美va精品| www激情久久| 成人污视频在线观看| 一区二区激情小说| 91精品国产一区二区人妖| 麻豆91精品91久久久的内涵| 欧美va亚洲va国产综合| 国产一区91精品张津瑜| 国产精品网站在线播放| 91久久精品午夜一区二区| 午夜精品久久久久久久蜜桃app | 91国产免费观看| 日本伊人色综合网| 久久久久高清精品| 成人av免费在线| 亚洲一区二区三区在线播放| 日韩一区二区三区四区五区六区| 国产精品一区二区在线观看不卡 | 成人国产精品免费观看视频| 亚洲另类色综合网站| 91精品国产91久久综合桃花| 国v精品久久久网| 一区二区三区.www| 欧美精品一区二| 欧美综合一区二区三区| 国产在线精品免费av| 亚洲综合无码一区二区| 久久午夜色播影院免费高清| 欧美性受xxxx黑人xyx| 国产精品一区二区免费不卡 | 国内精品国产三级国产a久久| 国产精品国产三级国产普通话三级| 欧美日韩精品欧美日韩精品 | 美女网站在线免费欧美精品| 亚洲欧洲在线观看av| 777xxx欧美| 99久久亚洲一区二区三区青草| 婷婷一区二区三区| 亚洲欧洲精品一区二区三区 | 欧美一级免费观看| 91在线免费播放| 精品在线视频一区| 日日欢夜夜爽一区| 亚洲国产一区二区三区| 国产精品色噜噜| 欧美tk—视频vk| 欧美精品日韩精品| 欧美亚洲免费在线一区| 国产成人综合精品三级| 免费av网站大全久久| 亚洲高清不卡在线观看| 中文字幕视频一区| 国产精品久久久久影院色老大| 精品处破学生在线二十三| 91麻豆精品国产综合久久久久久 | 久久精品一二三| 欧美一区二区私人影院日本| 欧美专区日韩专区| 91久久精品网| 欧美中文字幕不卡| 色婷婷综合久久久中文一区二区| av电影一区二区| 不卡一区二区在线| 99re热这里只有精品免费视频| 国产成人免费在线观看不卡| 精品亚洲免费视频| 激情综合色播激情啊| 久久精品国内一区二区三区| 日韩精品免费视频人成| 免费高清在线一区| 国模冰冰炮一区二区| 九色|91porny| 国产精品18久久久久久久久久久久| 久久99精品国产麻豆不卡| 韩国精品一区二区| 国产激情视频一区二区三区欧美| 国产精品中文字幕一区二区三区| 国产精品夜夜嗨| 粉嫩欧美一区二区三区高清影视| 成人av网站在线观看免费| 色婷婷国产精品综合在线观看| 色综合中文字幕| 欧美日韩精品欧美日韩精品| 欧美一级二级三级乱码| 26uuu国产电影一区二区| 中文av一区二区| 亚洲一区二区三区免费视频| 日韩成人精品在线| 国产一区高清在线| 处破女av一区二区| 在线中文字幕一区| 欧美一区二区国产| 国产欧美一区二区精品婷婷| 中文字幕日韩一区| 婷婷一区二区三区| 成人美女视频在线看| 色爱区综合激月婷婷| 欧美福利视频导航| 国产亚洲女人久久久久毛片| 亚洲欧美激情小说另类| 日韩二区三区四区| 懂色av噜噜一区二区三区av| 91福利国产成人精品照片| 日韩一级视频免费观看在线| 中文天堂在线一区| 人人狠狠综合久久亚洲| 从欧美一区二区三区| 91精品国产入口在线| 国产欧美日韩另类一区| 午夜精品福利久久久| 国产·精品毛片| 91精品视频网| 综合色中文字幕| 国产一区二区在线电影| 欧美性xxxxx极品少妇| 国产欧美精品一区二区色综合| 亚洲国产你懂的| 风间由美一区二区三区在线观看| 欧美日韩电影一区| 亚洲视频在线一区观看| 久久99热这里只有精品| 在线看一区二区| 欧美激情综合在线| 精品一区在线看| 色吊一区二区三区| 国产日韩精品一区二区三区在线| 亚洲福利一二三区| 99在线精品一区二区三区| 精品国产1区2区3区| 亚洲成av人片一区二区三区| 99国产精品久久久久久久久久久| 日韩视频一区二区| 一区二区三区中文字幕精品精品| 国产精品一二一区| 日韩欧美aaaaaa| 日韩国产精品久久| 欧美色图片你懂的| 亚洲精品成a人| 97久久超碰国产精品| 久久精品在这里| 国产精品123| 精品国产免费久久| 蜜桃视频第一区免费观看| 在线视频一区二区免费| 亚洲精品日韩一| 91麻豆123| 亚洲黄色录像片| 色综合色综合色综合色综合色综合 | 色激情天天射综合网| 中文字幕中文字幕中文字幕亚洲无线| 国产揄拍国内精品对白| 欧美变态tickling挠脚心| 麻豆精品一二三| 精品国产乱码久久| 国产精品一区二区在线播放| 久久久久久久久久久久电影|