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

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

?? sp2.c

?? linux下網絡編程的函數
?? C
字號:
/*******************************************************************************This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*******************************************************************************//*******************************************************************************Program: sp.cDescription: a smart proxyAuthor: Alan Chen (ariesram@may10.ca)Date: July 18, 2001*******************************************************************************/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <unistd.h>
#include <netinet/in.h>
#define ERRLOG "./sp.log"
int do_proxy(int infd, char* addr, int port);
int max(int i, int j);
void waitchild(int);
void version();
void usage();
void daemonize();
void p_error(const char * err_msg);
int main(int argc, char** argv) 
{
	struct sockaddr_in servaddr, clientaddr;
	int listenfd, connfd;
	int clientlen;pid_t chpid;
	int service_port = 0, remote_port = 0;
	char remote_addr[17];
	const char optstring[] = "s:r:p:vh";
	int opt;
	extern char *optarg;
	extern int optind, opterr, optopt;
	extern FILE *stderr;
	memset(remote_addr, 0, 17);
	if( argc == 2 ) 
		{while( (opt = getopt(argc, argv, optstring)) != -1 ) 
			{
				if( opt == 'v' ) {version();exit(0);}
				else if ( opt == 'h' ) {usage();exit(0);}
					else {printf("type sp -h for help message");usage();exit(0);}}}
						else {while( (opt = getopt(argc, argv, optstring)) != -1 ) 
							{switch(opt) {
								case 's':service_port = atoi(optarg);break;
								case 'r':memcpy(remote_addr, optarg, strlen(optarg));remote_addr[strlen(remote_addr)] = '';break;
								case 'p':remote_port = atoi(optarg);break;default:usage();exit(0);}}}
						if( service_port == 0' 'remote_port == 0' 'remote_addr[0] == '') {usage();exit(0);}
			daemonize();
			bzero(&servaddr, sizeof(servaddr));
			servaddr.sin_family = AF_INET;
			servaddr.sin_port = htons(service_port);
			servaddr.sin_addr.s_addr = INADDR_ANY;
			listenfd = socket(AF_INET, SOCK_STREAM, 0);
			if(listenfd < 0) {p_error("socket error");exit(-1);}
			if( bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0 ) {p_error("bind error");exit(-1);}
			if( listen(listenfd, 5) < 0 ) {p_error("listen error");exit(-1);}
			signal(SIGCHLD, waitchild);
			for(;;) 
			{
				connfd = accept( listenfd, (struct sockaddr *)&clientaddr,&clientlen );
				if( connfd < 0 ) {p_error("accept error");exit(-1);}
				if( (chpid = fork()) == -1 ) {p_error("fork error");exit(-1);}
				if( chpid == 0 ) {close(listenfd);do_proxy(connfd, remote_addr, remote_port);exit(0);}
				if( chpid > 0 ) {close(connfd);}
			}
			exit(0);
}
int do_proxy(int infd, char *addr, int port) 
		{
			struct sockaddr_in rout;
			int outfd;int maxfd;
			int count = 65535;
			int n;
			fd_set set;
			char buf[count];
			bzero(&rout, sizeof(rout));
			rout.sin_family = AF_INET;
			rout.sin_port = htons(port);
			rout.sin_addr.s_addr = inet_addr(addr);
			if( (outfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 
				{p_error("socket error");exit(-1);}
			if( connect(outfd, (struct sockaddr *)&rout, sizeof(rout)) < 0 ) {p_error("connect error");exit(-1);}
			while(1) 
			{
				FD_ZERO(&set);
				FD_SET(infd, &set);
				FD_SET(outfd, &set);
				maxfd = max(outfd, infd);
				if( select(maxfd   1, &set, NULL, NULL, NULL) < 0 ) {perror("select error:");exit(-1);}
				if( FD_ISSET(infd, &set) ) 
					{n = read(infd, (void *)buf, count);
						if( n <= 0)break;
						if( write(outfd, (const void *)buf, n) != n ) {p_error("write error");continue;}}
						if( FD_ISSET(outfd, &set) ) {n = read(outfd, (void *)buf, count);
							if( n <= 0)break;
							if( write(infd, (const void *)buf, n) != n ) {p_error("write error");continue;}
								}
			}
			close(infd);
			close(outfd);
}
int max(int i, int j) 
{
	return i>j?i:j;
}
void waitchild(int signo) 
{
	int status;
	pid_t childpid;
	if( (childpid = waitpid(-1, &status, WNOHANG)) < 0 ) {p_error("wait error");exit(1);}return;
}
void version() 
{
	printf("GNU SP 1.0Copyright 2001 Aryes Software Studio, Inc.SP is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions.");
}
void usage() 
{
	printf("This is the GNU smart proxy daemon. Usage:sp -s service_port -r remote_address -p remote_portsp -vsp -hoption:-s specify service port of sp-r specify remote address which sp will connect-p specify remote port while sp will connect to-v display version message-h display this help messageReport bugs to <ariesram@may10.ca>.");
}
void daemonize() 
{
	int i;
	#ifndef _DEBUGsignal(SIGINT, SIG_IGN);
	#endifsignal(SIGHUP, SIG_IGN);
	signal(SIGABRT, SIG_IGN);
	signal(SIGSTOP, SIG_IGN);
	signal(SIGCHLD, SIG_IGN);
	#ifndef _DEBUG
	if (fork() != 0)exit(0);
		setsid();
		for (i = 256; i >= 0; i --)
		#endif
		#ifdef _DEBUG
		for (i = 256; i >= 3; i --)
		#endif
		close(i);
}
void p_error(const char * err_msg)
{
	FILE * fp;
	#ifdef _DEBUGprintf("%s", err_msg);
	#endif
	fp = fopen(ERRLOG, "a");
	if (fp == NULL)return;
	fprintf(fp, "%s", err_msg);
	fclose(fp);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产91亚洲一区二区三区婷婷| 日韩av电影天堂| jvid福利写真一区二区三区| 国产欧美一区二区精品久导航| 国产精品18久久久久久久久| 欧美国产精品专区| 色综合天天狠狠| 亚洲成人av在线电影| 宅男在线国产精品| 国产一区二区三区综合| 中文字幕不卡一区| 欧美在线|欧美| 免费观看一级特黄欧美大片| 26uuu久久天堂性欧美| 国产**成人网毛片九色| 亚洲女女做受ⅹxx高潮| 欧美嫩在线观看| 国产一区二区久久| 亚洲欧美日韩中文播放| 欧美三级乱人伦电影| 日韩1区2区日韩1区2区| 国产婷婷一区二区| 在线视频你懂得一区二区三区| 丝袜美腿成人在线| 欧美国产日韩a欧美在线观看| 95精品视频在线| 免费人成黄页网站在线一区二区| 久久久不卡网国产精品一区| 色综合天天综合在线视频| 日日嗨av一区二区三区四区| 国产亚洲美州欧州综合国| 色乱码一区二区三区88| 久久精品国内一区二区三区| 国产精品久久久久久久浪潮网站| 欧美日韩一区二区三区不卡| 国产精品资源在线| 亚洲成人7777| 国产精品视频线看| 日韩免费电影网站| 在线看日本不卡| 懂色av中文一区二区三区| 亚洲成人三级小说| 最近中文字幕一区二区三区| 日韩丝袜情趣美女图片| 色综合咪咪久久| 国产九九视频一区二区三区| 亚洲成人在线免费| 亚洲三级在线免费| 久久久久久久久99精品| 制服丝袜在线91| 在线观看亚洲精品| 成人激情免费电影网址| 美国av一区二区| 亚洲不卡av一区二区三区| 自拍偷拍国产精品| 中文字幕精品一区二区三区精品| 日韩一区二区免费在线电影| 欧美午夜精品免费| 色成人在线视频| 99久久er热在这里只有精品66| 久久99久久久欧美国产| 性感美女久久精品| 亚洲一二三四区| 亚洲精品国产无套在线观| 国产偷国产偷精品高清尤物 | 国产精品影音先锋| 免费观看成人鲁鲁鲁鲁鲁视频| 一区二区三区日韩欧美精品| 国产精品久线在线观看| 国产日韩一级二级三级| 337p日本欧洲亚洲大胆精品| 欧美一激情一区二区三区| 91精品国产91久久久久久最新毛片| 在线一区二区三区四区五区| 色综合天天综合给合国产| 不卡影院免费观看| hitomi一区二区三区精品| 北条麻妃国产九九精品视频| 成人免费av资源| 成人免费视频一区| gogo大胆日本视频一区| 成人国产精品免费观看| www.亚洲激情.com| 色综合久久中文综合久久97| 91小视频在线免费看| 一本久久a久久免费精品不卡| 91麻豆国产在线观看| 欧洲一区在线电影| 欧美肥妇bbw| 精品国产乱码久久久久久夜甘婷婷| 欧美一级高清片| 中文字幕一区二区三区在线不卡 | 综合欧美亚洲日本| 亚洲精品国产视频| 视频一区免费在线观看| 日产精品久久久久久久性色| 免费人成精品欧美精品| 国产老妇另类xxxxx| va亚洲va日韩不卡在线观看| 91久久精品网| 91精品久久久久久久91蜜桃| 亚洲精品一区二区三区香蕉| 久久精品欧美一区二区三区不卡 | 久久亚洲精品小早川怜子| 久久先锋影音av鲁色资源网| 国产精品午夜免费| 亚洲已满18点击进入久久| 日本色综合中文字幕| 国产乱码精品一区二区三区av| 成人精品视频.| 欧美日韩久久久久久| 亚洲精品在线免费播放| 成人免费一区二区三区视频 | 中文字幕亚洲视频| 天天av天天翘天天综合网色鬼国产| 免费观看30秒视频久久| 成人美女视频在线观看| 欧美日韩欧美一区二区| 2023国产精品视频| 亚洲一区在线观看网站| 狠狠色2019综合网| 91福利精品第一导航| 亚洲精品一区二区三区精华液| 亚洲欧洲成人精品av97| 美女视频一区二区三区| 95精品视频在线| 精品国产伦一区二区三区免费| 亚洲色图一区二区| 韩日欧美一区二区三区| 在线免费观看视频一区| 久久精品夜夜夜夜久久| 亚洲一区二区三区四区五区中文| 国产伦精一区二区三区| 精品视频在线免费| 国产精品久久久久久福利一牛影视| 视频一区视频二区在线观看| 菠萝蜜视频在线观看一区| 91精品国产综合久久精品麻豆 | 日韩精品资源二区在线| 成人免费在线观看入口| 国产在线视视频有精品| 欧美色中文字幕| 亚洲免费观看高清| 成人免费看片app下载| 日韩欧美一二三| 亚洲chinese男男1069| 9色porny自拍视频一区二区| 久久色视频免费观看| 天堂av在线一区| 日本高清无吗v一区| 久久久久久毛片| 久久aⅴ国产欧美74aaa| 欧美日韩国产免费一区二区| 亚洲天堂精品视频| av电影天堂一区二区在线观看| 久久综合久色欧美综合狠狠| 日韩电影免费在线看| 欧美日韩国产高清一区二区三区| ㊣最新国产の精品bt伙计久久| 国产suv精品一区二区三区| 精品对白一区国产伦| 日韩av午夜在线观看| 欧美精品 日韩| 午夜激情一区二区三区| 欧美日韩一区二区三区四区 | 欧美国产1区2区| 国产精品亚洲成人| 国产网站一区二区三区| 国产精品一区二区在线看| 精品国产91亚洲一区二区三区婷婷| 美脚の诱脚舐め脚责91| 欧美成人官网二区| 激情久久五月天| 久久久国产一区二区三区四区小说 | 色综合色综合色综合| 成人欧美一区二区三区| 99re这里只有精品首页| 亚洲人成网站在线| 欧美色精品天天在线观看视频| 洋洋成人永久网站入口| 欧美日韩国产a| 蜜臀精品一区二区三区在线观看| 日韩欧美国产1| 国产精品一区二区无线| 国产精品美女www爽爽爽| 成人av在线资源网| 亚洲自拍偷拍av| 在线播放中文一区| av资源站一区| 亚洲一区国产视频| 91精品国产91久久综合桃花| 激情综合一区二区三区| 欧美国产精品v| 欧洲在线/亚洲| 麻豆精品国产91久久久久久| 久久久精品综合| 色婷婷av一区二区三区之一色屋| 五月婷婷综合在线| 国产亚洲精品超碰| 在线视频一区二区三区|