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

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

?? smart-select.c

?? linux下網絡編程
?? C
字號:
/* smart-select.c
 *
 * Copyright (c) 2000 Sean Walton and Macmillan Publishers.  Use may be in
 * whole or in part in accordance to the General Public License (GPL).
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS 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 THE REGENTS OR 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.
*/

/*****************************************************************************/
/*** smart-select.c                                                        ***/
/***                                                                       ***/
/*** The smart select combines preforking with the select() call to keep   ***/
/*** the select descriptor arrays small.                                   ***/
/*****************************************************************************/

#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <resolv.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>

#define MAXPROCESSES	5
#define MAXCONNECTIONS	5

int NumChildren=0;

/*---------------------------------------------------------------------*/
/*--- sig_child - SIGCHLD                                           ---*/
/*---------------------------------------------------------------------*/
void sig_child(int signum)
{
	wait(0);
	NumChildren--;
}

/*---------------------------------------------------------------------*/
/*--- servlet - each servlet accepts a connection and keeps track   ---*/
/*--- of it using a select() statement.                             ---*/
/*---------------------------------------------------------------------*/
void servlet(int server)
{	fd_set set;
	int maxfd = server;
	int ceiling=0;

	FD_ZERO(&set);
	FD_SET(server, &set);
	for (;;)
	{   struct timeval timeout={2,0}; /* 2 seconds */

    	/*---Wait for some action---*/
	    if ( select(maxfd+1, &set, 0, 0, &timeout) > 0 )
    	{
        	/*---If new connection, connect and add to list---*/
			if ( FD_ISSET(server, &set) )
			{
			    if ( ceiling < MAXCONNECTIONS )
		    	{   int client = accept(server, 0, 0);
		        	if ( maxfd < client )
        		    	maxfd = client;
			        FD_SET(client, &set);
    	    		ceiling++;
					printf("select process #%d: %d connected\n",
							getpid(), ceiling);
			    }
	        }

    	    /*---If command/request from client, process---*/
        	else
			{	int i;

				for ( i = 0; i < maxfd+1; i++ )
				{
					if ( FD_ISSET(i, &set) )
					{	char buffer[1024];
						int bytes;

						bytes = recv(i, buffer, sizeof(buffer), 0);
						if ( bytes < 0 )		/* check if channel closed */
						{
							close(i);
							FD_CLR(i, &set);
							ceiling--;
							printf("select process #%d: %d connected\n",
									getpid(), ceiling);
						}
						else					/* process the request */
							send(i, buffer, bytes, 0);
					}
				}
			}
    	}
	}
	exit(0);
}

/*---------------------------------------------------------------------*/
/*--- main - set up server and maintain the number of living servlets--*/
/*---------------------------------------------------------------------*/
int main(int count, char *strings[])
{	int sd;
	struct sockaddr_in addr;
	struct sigaction act;

	if ( count != 2 )
	{
		printf("usage: %s <port>\n", strings[0]);
		exit(0);
	}
	bzero(&act, sizeof(act));
	act.sa_handler = sig_child;
	act.sa_flags = SA_NOCLDSTOP | SA_RESTART;
	if ( sigaction(SIGCHLD, &act, 0) != 0 )
		perror("sigaction()");

	sd = socket(PF_INET, SOCK_STREAM, 0);
	bzero(&addr, sizeof(addr));
	addr.sin_family = AF_INET;
	addr.sin_port = htons(atoi(strings[1]));
	addr.sin_addr.s_addr = INADDR_ANY;
	if ( bind(sd, (struct sockaddr*)&addr, sizeof(addr)) == 0 )
	{
		listen(sd, 15);
		for (;;)
		{
			if ( NumChildren < MAXPROCESSES )
			{	int pid;

				if ( (pid = fork()) == 0 )
					servlet(sd);
				else if ( pid > 0 )
					NumChildren++;
				else
					perror("fork()");
			}
			else
				sleep(1);
		}
	}
	else
		perror("bind()");
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合夜色一区| 久久av中文字幕片| 色综合天天综合| 亚洲欧美在线观看| 在线免费观看日本欧美| 亚洲高清在线视频| 日韩精品一区在线| 国产精品自拍av| 亚洲伦理在线免费看| 欧美影院精品一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产成人精品免费看| 日本一区二区视频在线| 99久久er热在这里只有精品66| 亚洲久本草在线中文字幕| 欧美在线观看视频一区二区| 日本欧美在线看| 久久久欧美精品sm网站| 色屁屁一区二区| 免费观看30秒视频久久| 久久精品亚洲国产奇米99| 日本福利一区二区| 麻豆国产精品一区二区三区| 国产精品久久久久久久裸模| 欧美日韩三级一区二区| 国模套图日韩精品一区二区 | 日韩精品亚洲一区二区三区免费| 日韩欧美久久一区| 91一区一区三区| 久久精品国产精品青草| 国产精品久久久久影视| 欧美精选午夜久久久乱码6080| 激情小说亚洲一区| 亚洲制服丝袜av| 久久综合九色综合欧美就去吻 | 国产尤物一区二区| 一区二区三区欧美激情| 久久久国际精品| 欧美久久一区二区| 成人高清伦理免费影院在线观看| 午夜视黄欧洲亚洲| 中文无字幕一区二区三区| 3atv在线一区二区三区| 成人av在线一区二区| 捆绑变态av一区二区三区| 一区二区三区在线影院| 欧美国产综合一区二区| 精品乱人伦一区二区三区| 在线免费观看成人短视频| 丰满少妇在线播放bd日韩电影| 免费国产亚洲视频| 亚洲黄网站在线观看| 国产免费久久精品| 欧美精品一区二区在线播放| 欧美日本一区二区三区四区| av在线这里只有精品| 国产精一区二区三区| 蜜桃在线一区二区三区| 亚洲va韩国va欧美va| 亚洲免费看黄网站| 国产精品传媒入口麻豆| 欧美国产日韩a欧美在线观看| 欧美成人aa大片| 91麻豆精品国产91久久久| 欧美在线三级电影| 色偷偷成人一区二区三区91| 成人高清免费在线播放| 成人网页在线观看| 成人深夜视频在线观看| 国产精品主播直播| 国内精品久久久久影院一蜜桃| 美腿丝袜亚洲一区| 亚洲sss视频在线视频| 亚洲午夜私人影院| 亚洲一区二区在线免费观看视频| 亚洲视频一二区| 亚洲视频免费在线| 亚洲色图欧美偷拍| 亚洲色图在线播放| 亚洲精品高清在线观看| 一区二区高清在线| 亚洲成人在线观看视频| 久久久久国产精品人| 久久精品亚洲一区二区三区浴池| 久久免费偷拍视频| 国产精品欧美一区二区三区| 国产精品乱人伦中文| 自拍偷拍亚洲欧美日韩| 亚洲尤物在线视频观看| 日本一不卡视频| 国产制服丝袜一区| 夫妻av一区二区| 91在线国产福利| 欧美系列一区二区| 91精品一区二区三区在线观看| 欧美一区二区久久久| 日韩美女一区二区三区| 国产色91在线| 亚洲人成网站在线| 亚洲va天堂va国产va久| 久久国产精品72免费观看| 国产69精品久久久久毛片| 91美女蜜桃在线| 欧美日韩精品欧美日韩精品| 337p粉嫩大胆噜噜噜噜噜91av | 高清av一区二区| 色天使色偷偷av一区二区| 欧美日韩一区二区三区在线看| 欧美精品aⅴ在线视频| 2024国产精品| 亚洲人成网站影音先锋播放| 日本aⅴ免费视频一区二区三区| 国产精品中文字幕欧美| 色综合久久久久网| 91精品国产综合久久精品app| 久久色成人在线| 亚洲精品成人a在线观看| 蜜桃av一区二区在线观看| 成人黄页在线观看| 欧美日韩二区三区| 国产精品午夜在线| 日韩成人av影视| 成人福利视频网站| 91精品国产免费| 中文字幕在线观看一区二区| 日韩不卡手机在线v区| 国产精品99久| 欧美另类高清zo欧美| 日本一区二区三区高清不卡| 水蜜桃久久夜色精品一区的特点 | 日韩视频免费观看高清完整版 | 国产原创一区二区| 欧美日韩激情一区二区三区| 亚洲国产精品av| 日韩精品电影一区亚洲| 972aa.com艺术欧美| 精品国内二区三区| 天堂久久久久va久久久久| av在线综合网| 久久久久久久久一| 五月天中文字幕一区二区| 91麻豆蜜桃一区二区三区| 久久精品亚洲乱码伦伦中文| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美专区日韩专区| 日韩毛片一二三区| 国产传媒一区在线| 精品国产伦一区二区三区观看体验| 亚洲制服丝袜av| 欧亚洲嫩模精品一区三区| 中文字幕综合网| 99国产欧美久久久精品| 久久久电影一区二区三区| 男女男精品视频| 6080国产精品一区二区| 亚洲国产精品久久人人爱蜜臀| 色综合久久88色综合天天| 1024国产精品| 91丨九色丨蝌蚪富婆spa| 中文字幕精品一区二区精品绿巨人| 久久99久久久欧美国产| 69av一区二区三区| 亚洲成人av电影| 欧美性色aⅴ视频一区日韩精品| 亚洲码国产岛国毛片在线| 成人av动漫在线| 中文成人综合网| av电影天堂一区二区在线观看| 中文av一区二区| 99精品一区二区三区| 中文字幕日韩av资源站| 99久久久久久| 一个色在线综合| 欧美日韩视频不卡| 青青草原综合久久大伊人精品| 亚洲精品欧美在线| 99久久精品免费看国产| 亚洲男人电影天堂| 91国模大尺度私拍在线视频| 亚洲综合激情网| 欧美午夜一区二区三区| 亚洲福利一二三区| 6080国产精品一区二区| 麻豆精品视频在线观看免费| 久久影院视频免费| 高清在线成人网| 亚洲日本欧美天堂| 欧美日韩一卡二卡| 美女高潮久久久| 国产午夜亚洲精品理论片色戒| 成人成人成人在线视频| 亚洲精品v日韩精品| 3d动漫精品啪啪1区2区免费| 精品一区二区三区在线观看| 国产女同互慰高潮91漫画| 91免费版pro下载短视频| 亚洲国产成人高清精品| 欧美成人一区二区三区在线观看| 国产毛片精品一区| 亚洲精品伦理在线|