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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ftp.c

?? linux下ftp client程序的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
		/*		 * What we've got at this point is a string of comma		 * separated one-byte unsigned integer values.		 * The first four are the an IP address. The fifth is		 * the MSB of the port number, the sixth is the LSB.		 * From that we'll prepare a sockaddr_in.		 */		if (sscanf(pasv,"%d,%d,%d,%d,%d,%d",			   &a0, &a1, &a2, &a3, &p0, &p1) != 6) {			printf("Passive mode address scan failure. Shouldn't happen!\n");			goto bad;		}		bzero(&data_addr, sizeof(data_addr));		data_addr.sin_family = AF_INET;		a = (char *)&data_addr.sin_addr.s_addr;		a[0] = a0 & 0xff;		a[1] = a1 & 0xff;		a[2] = a2 & 0xff;		a[3] = a3 & 0xff;		p = (char *)&data_addr.sin_port;		p[0] = p0 & 0xff;		p[1] = p1 & 0xff;		if (connect(data, (struct sockaddr *)&data_addr,			    sizeof(data_addr)) < 0) {			perror("ftp: connect");			goto bad;		}#if defined(IP_TOS) && defined(IPTOS_THROUGPUT)		on = IPTOS_THROUGHPUT;		if (setsockopt(data, IPPROTO_IP, IP_TOS, (char *)&on,			       sizeof(int)) < 0)			perror("ftp: setsockopt TOS (ignored)");#endif		return(0);	}noport:	data_addr = myctladdr;	if (sendport)		data_addr.sin_port = 0;	/* let system pick one */	if (data != -1)		close(data);	data = socket(AF_INET, SOCK_STREAM, 0);	if (data < 0) {		error (0, errno, "socket");		if (tmpno)			sendport = 1;		return (1);	}	if (!sendport)		if (setsockopt(data, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof (on)) < 0) {			error (0, errno, "setsockopt (reuse address)");			goto bad;		}	if (bind(data, (struct sockaddr *)&data_addr, sizeof (data_addr)) < 0) {		error (0, errno, "bind");		goto bad;	}	if (options & SO_DEBUG &&	    setsockopt(data, SOL_SOCKET, SO_DEBUG, (char *)&on, sizeof (on)) < 0)		error (0, errno, "setsockopt (ignored)");	len = sizeof (data_addr);	if (getsockname(data, (struct sockaddr *)&data_addr, &len) < 0) {		error (0, errno, "getsockname");		goto bad;	}	if (listen(data, 1) < 0)		error (0, errno, "listen");	if (sendport) {		a = (char *)&data_addr.sin_addr;		p = (char *)&data_addr.sin_port;#define	UC(b)	(((int)b)&0xff)		result =		    command("PORT %d,%d,%d,%d,%d,%d",		      UC(a[0]), UC(a[1]), UC(a[2]), UC(a[3]),		      UC(p[0]), UC(p[1]));		if (result == ERROR && sendport == -1) {			sendport = 0;			tmpno = 1;			goto noport;		}		return (result != COMPLETE);	}	if (tmpno)		sendport = 1;#if defined (IP_TOS) && defined (IPPROTO_IP) && defined (IPTOS_THROUGHPUT)	on = IPTOS_THROUGHPUT;	if (setsockopt(data, IPPROTO_IP, IP_TOS, (char *)&on, sizeof(int)) < 0)		error (0, errno, "setsockopt TOS (ignored)");#endif	return (0);bad:	close(data), data = -1;	if (tmpno)		sendport = 1;	return (1);}FILE *dataconn(lmode)	char *lmode;{	struct sockaddr_in from;	int s, fromlen = sizeof (from), tos;	if (passivemode)		return (fdopen(data, lmode));	s = accept(data, (struct sockaddr *) &from, &fromlen);	if (s < 0) {		error (0, errno, "accept");		close(data), data = -1;		return (NULL);	}	close(data);	data = s;#if defined (IP_TOS) && defined (IPPROTO_IP) && defined (IPTOS_THROUGHPUT)	tos = IPTOS_THROUGHPUT;	if (setsockopt(s, IPPROTO_IP, IP_TOS, (char *)&tos, sizeof(int)) < 0)		error (0, errno, "setsockopt TOS (ignored)");#endif	return (fdopen(data, lmode));}voidptransfer(direction, bytes, t0, t1)	char *direction;	long bytes;	struct timeval *t0, *t1;{	struct timeval td;	float s;	long bs;	if (verbose) {		tvsub(&td, t1, t0);		s = td.tv_sec + (td.tv_usec / 1000000.);#define	nz(x)	((x) == 0 ? 1 : (x))		bs = bytes / nz(s);		printf("%ld bytes %s in %.3g seconds (%ld bytes/s)\n",		    bytes, direction, s, bs);	}}/*voidtvadd(tsum, t0)	struct timeval *tsum, *t0;{	tsum->tv_sec += t0->tv_sec;	tsum->tv_usec += t0->tv_usec;	if (tsum->tv_usec > 1000000)		tsum->tv_sec++, tsum->tv_usec -= 1000000;}*/voidtvsub(tdiff, t1, t0)	struct timeval *tdiff, *t1, *t0;{	tdiff->tv_sec = t1->tv_sec - t0->tv_sec;	tdiff->tv_usec = t1->tv_usec - t0->tv_usec;	if (tdiff->tv_usec < 0)		tdiff->tv_sec--, tdiff->tv_usec += 1000000;}voidpsabort(sig)  int sig;{	abrtflag++;}voidpswitch(flag)	int flag;{	sig_t oldintr;	static struct comvars {		int connect;		char *name;		struct sockaddr_in mctl;		struct sockaddr_in hctl;		FILE *in;		FILE *out;		int tpe;		int curtpe;		int cpnd;		int sunqe;		int runqe;		int mcse;		int ntflg;		char nti[17];		char nto[17];		int mapflg;		char *mi;		char *mo;	} proxstruct = {0}, tmpstruct = {0};	struct comvars *ip, *op;	abrtflag = 0;	oldintr = signal(SIGINT, psabort);	if (flag) {		if (proxy)			return;		ip = &tmpstruct;		op = &proxstruct;		proxy++;	} else {		if (!proxy)			return;		ip = &proxstruct;		op = &tmpstruct;		proxy = 0;	}	ip->connect = connected;	connected = op->connect;	if (ip->name)		free (ip->name);	ip->name = hostname;	hostname = op->name;	op->name = 0;	ip->hctl = hisctladdr;	hisctladdr = op->hctl;	ip->mctl = myctladdr;	myctladdr = op->mctl;	ip->in = cin;	cin = op->in;	ip->out = cout;	cout = op->out;	ip->tpe = type;	type = op->tpe;	ip->curtpe = curtype;	curtype = op->curtpe;	ip->cpnd = cpend;	cpend = op->cpnd;	ip->sunqe = sunique;	sunique = op->sunqe;	ip->runqe = runique;	runique = op->runqe;	ip->mcse = mcase;	mcase = op->mcse;	ip->ntflg = ntflag;	ntflag = op->ntflg;	strncpy(ip->nti, ntin, sizeof(ntin) - 1);	(ip->nti)[strlen(ip->nti)] = '\0';	strcpy(ntin, op->nti);	strncpy(ip->nto, ntout, sizeof(ntout) - 1);	(ip->nto)[strlen(ip->nto)] = '\0';	strcpy(ntout, op->nto);	ip->mapflg = mapflag;	mapflag = op->mapflg;	if (ip->mi)		free (ip->mi);	ip->mi = mapin;	mapin = op->mi;	op->mi = 0;	if (ip->mo)		free (ip->mo);	ip->mo = mapout;	mapout = op->mo;	op->mo = 0;	signal(SIGINT, oldintr);	if (abrtflag) {		abrtflag = 0;		(*oldintr)(SIGINT);	}}voidabortpt(sig)  int sig;{	printf("\n");	fflush(stdout);	ptabflg++;	mflag = 0;	abrtflag = 0;	longjmp(ptabort, 1);}voidproxtrans(cmd, local, remote)	char *cmd, *local, *remote;{	sig_t oldintr;	int secndflag = 0, prox_type, nfnd;	char *cmd2;	fd_set mask;	if (strcmp(cmd, "RETR"))		cmd2 = "RETR";	else		cmd2 = runique ? "STOU" : "STOR";	if ((prox_type = type) == 0) {		if (unix_server && unix_proxy)			prox_type = TYPE_I;		else			prox_type = TYPE_A;	}	if (curtype != prox_type)		changetype(prox_type, 1);	if (command("PASV") != COMPLETE) {		printf("proxy server does not support third party transfers.\n");		return;	}	pswitch(0);	if (!connected) {		printf("No primary connection\n");		pswitch(1);		code = -1;		return;	}	if (curtype != prox_type)		changetype(prox_type, 1);	if (command("PORT %s", pasv) != COMPLETE) {		pswitch(1);		return;	}	if (setjmp(ptabort))		goto abort;	oldintr = signal(SIGINT, abortpt);	if (command("%s %s", cmd, remote) != PRELIM) {		signal(SIGINT, oldintr);		pswitch(1);		return;	}	sleep(2);	pswitch(1);	secndflag++;	if (command("%s %s", cmd2, local) != PRELIM)		goto abort;	ptflag++;	getreply(0);	pswitch(0);	getreply(0);	signal(SIGINT, oldintr);	pswitch(1);	ptflag = 0;	printf("local: %s remote: %s\n", local, remote);	return;abort:	signal(SIGINT, SIG_IGN);	ptflag = 0;	if (strcmp(cmd, "RETR") && !proxy)		pswitch(1);	else if (!strcmp(cmd, "RETR") && proxy)		pswitch(0);	if (!cpend && !secndflag) {  /* only here if cmd = "STOR" (proxy=1) */		if (command("%s %s", cmd2, local) != PRELIM) {			pswitch(0);			if (cpend)				abort_remote((FILE *) NULL);		}		pswitch(1);		if (ptabflg)			code = -1;		signal(SIGINT, oldintr);		return;	}	if (cpend)		abort_remote((FILE *) NULL);	pswitch(!proxy);	if (!cpend && !secndflag) {  /* only if cmd = "RETR" (proxy=1) */		if (command("%s %s", cmd2, local) != PRELIM) {			pswitch(0);			if (cpend)				abort_remote((FILE *) NULL);			pswitch(1);			if (ptabflg)				code = -1;			signal(SIGINT, oldintr);			return;		}	}	if (cpend)		abort_remote((FILE *) NULL);	pswitch(!proxy);	if (cpend) {		FD_ZERO(&mask);		FD_SET(fileno(cin), &mask);		if ((nfnd = empty(&mask, 10)) <= 0) {			if (nfnd < 0) {				error (0, errno, "abort");			}			if (ptabflg)				code = -1;			lostpeer();		}		getreply(0);		getreply(0);	}	if (proxy)		pswitch(0);	pswitch(1);	if (ptabflg)		code = -1;	signal(SIGINT, oldintr);}voidreset(argc, argv)	int argc;	char *argv[];{	fd_set mask;	int nfnd = 1;	FD_ZERO(&mask);	while (nfnd > 0) {		FD_SET(fileno(cin), &mask);		if ((nfnd = empty(&mask,0)) < 0) {			error (0, errno, "reset");			code = -1;			lostpeer();		}		else if (nfnd) {			getreply(0);		}	}}char *gunique(local)	char *local;{	static char *new = 0;	char *cp;	int d, count=0;	char ext = '1';	if (new)		free (new);	new = malloc (strlen (local) + 1 + 3 + 1); /* '.' + 100 + '\0' */	if (! new) {		printf ("gunique: malloc failed.\n");		return 0;	}	strcpy (new, local);	cp = new + strlen(new);	*cp++ = '.';	for (;;) {		struct stat st;		if (++count == 100) { 			printf("runique: can't find unique file name.\n");			return ((char *) 0);		}		*cp++ = ext;		*cp = '\0';		if (ext == '9')			ext = '0';		else			ext++;		if (stat (new, &st) != 0)		    if (errno == ENOENT)				return new;			else			  	return 0;		if (ext != '0')			cp--;		else if (*(cp - 2) == '.')			*(cp - 1) = '1';		else {			*(cp - 2) = *(cp - 2) + 1;			cp--;		}	}}voidabort_remote(din)	FILE *din;{	char buf[BUFSIZ];	int nfnd;	fd_set mask;	/*	 * send IAC in urgent mode instead of DM because 4.3BSD places oob mark	 * after urgent byte rather than before as is protocol now	 */	sprintf(buf, "%c%c%c", IAC, IP, IAC);	if (send(fileno(cout), buf, 3, MSG_OOB) != 3)		error (0, errno, "abort");	fprintf(cout,"%cABOR\r\n", DM);	fflush(cout);	FD_ZERO(&mask);	FD_SET(fileno(cin), &mask);	if (din) {		FD_SET(fileno(din), &mask);	}	if ((nfnd = empty(&mask, 10)) <= 0) {		if (nfnd < 0) {			error (0, errno, "abort");		}		if (ptabflg)			code = -1;		lostpeer();	}	if (din && FD_ISSET(fileno(din), &mask)) {		while (read(fileno(din), buf, BUFSIZ) > 0)			/* LOOP */;	}	if (getreply(0) == ERROR && code == 552) {		/* 552 needed for nic style abort */		getreply(0);	}	getreply(0);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费视频| 日韩精品免费专区| 国产在线一区观看| 欧美日韩的一区二区| 欧美国产在线观看| 国产久卡久卡久卡久卡视频精品| 欧美男女性生活在线直播观看| 亚洲精选视频免费看| av亚洲精华国产精华精华| 国产农村妇女精品| 国产精品影视在线观看| 久久午夜电影网| 激情六月婷婷久久| 亚洲精品一线二线三线| 久久av中文字幕片| 精品三级在线观看| 国产一区二区三区美女| 久久婷婷综合激情| 成人福利视频在线| 亚洲日本在线观看| 色嗨嗨av一区二区三区| 高清在线成人网| 中文字幕欧美三区| 91浏览器在线视频| 亚洲精品久久久蜜桃| 欧美日韩三级视频| 欧美aaa在线| 国产亚洲欧美日韩日本| 久久99久久精品欧美| 日韩小视频在线观看专区| 亚洲国产精品自拍| 欧美日韩一区久久| 久久69国产一区二区蜜臀| 国产区在线观看成人精品| 成人午夜伦理影院| 亚洲蜜臀av乱码久久精品| 欧美日韩极品在线观看一区| 久久国产精品第一页| 国产香蕉久久精品综合网| 色婷婷国产精品| 免费观看一级特黄欧美大片| 久久久久国产精品人| 91日韩精品一区| 日日夜夜精品免费视频| 久久九九国产精品| 91免费视频网| 日韩精品久久理论片| 国产日韩亚洲欧美综合| 极品少妇一区二区| 国产午夜精品一区二区三区嫩草| 国产麻豆一精品一av一免费| 亚洲精品亚洲人成人网在线播放| 欧美影视一区二区三区| 亚洲国产婷婷综合在线精品| 7878成人国产在线观看| 成人av免费在线观看| 亚洲欧美综合网| 日韩欧美一区二区不卡| 91麻豆国产在线观看| 免费人成在线不卡| 亚洲摸摸操操av| 久久久久久免费毛片精品| av一本久道久久综合久久鬼色| 婷婷开心激情综合| 亚洲欧洲三级电影| 久久五月婷婷丁香社区| 欧美色视频在线| 99久久免费国产| 国产精品一二三四区| 婷婷六月综合网| 狠狠色综合色综合网络| 亚洲一区二区高清| 国产精品污www在线观看| 欧美日韩国产123区| 色哟哟国产精品| 成人午夜伦理影院| 激情六月婷婷久久| 青青草一区二区三区| 一级做a爱片久久| 国产精品三级视频| 久久影院视频免费| 欧美一区二区视频免费观看| 色94色欧美sute亚洲线路二| 成人av动漫网站| 丰满白嫩尤物一区二区| 久久99热99| 美女www一区二区| 奇米色一区二区三区四区| 亚洲成人综合在线| 亚洲综合一区在线| 一区二区三区国产精品| 亚洲欧美一区二区久久| 亚洲国产精品成人综合 | 日韩一区二区三区视频| 一本一本久久a久久精品综合麻豆| 激情五月婷婷综合网| 美女性感视频久久| 久久精品国产亚洲a| 免费xxxx性欧美18vr| 日本va欧美va欧美va精品| 亚洲成a人片在线观看中文| 亚洲一二三四在线| 亚洲成人综合在线| 日韩1区2区3区| 日本视频一区二区三区| 美腿丝袜亚洲一区| 久久99热国产| 国产精品1024| 波多野结衣中文字幕一区| www.欧美亚洲| 日本久久一区二区三区| 精品视频一区二区三区免费| 欧美疯狂做受xxxx富婆| 日韩三级视频在线观看| 久久新电视剧免费观看| 国产色爱av资源综合区| 亚洲人xxxx| 亚洲永久精品国产| 美女在线一区二区| 国产福利精品一区二区| 99久久精品免费看| 欧美视频在线观看一区| 日韩精品一区二区在线观看| 久久精品视频一区二区三区| 中文字幕不卡在线| 亚洲国产成人av好男人在线观看| 三级亚洲高清视频| 国产一区二区精品在线观看| 91美女精品福利| 日韩一级大片在线| 国产精品情趣视频| 亚洲成人资源在线| 韩国成人福利片在线播放| 99精品国产热久久91蜜凸| 91福利精品第一导航| 日韩一级成人av| 成人免费一区二区三区视频 | 国产成人精品在线看| 91视频在线看| 欧美一级夜夜爽| 日韩免费在线观看| 中文一区二区完整视频在线观看| 亚洲欧美日韩成人高清在线一区| 色综合天天天天做夜夜夜夜做| 欧美三级日韩三级| 国产拍揄自揄精品视频麻豆| 亚洲自拍偷拍九九九| 国产精选一区二区三区| 在线中文字幕不卡| 久久精品综合网| 日韩国产高清在线| 99精品1区2区| 久久久五月婷婷| 天天综合色天天综合色h| 成人永久aaa| 日韩欧美高清在线| 亚洲美女免费在线| 床上的激情91.| 欧美一区二区成人| 一区二区三区美女| 成人一级片网址| 欧美变态tickle挠乳网站| 亚洲一区二区三区四区中文字幕| 大美女一区二区三区| 日韩精品一区在线| 三级欧美在线一区| 色老汉一区二区三区| 中文成人av在线| 激情欧美一区二区三区在线观看| 欧美狂野另类xxxxoooo| 亚洲日本在线视频观看| 国产精品亚洲专一区二区三区| 在线成人午夜影院| 亚洲精品国产无天堂网2021| 成人午夜视频在线| 国产日韩欧美精品一区| 国内精品伊人久久久久av一坑| 欧美肥胖老妇做爰| 国产精品国产精品国产专区不片| 美洲天堂一区二卡三卡四卡视频 | 国产精品一二三四五| 日韩欧美国产电影| 日日夜夜免费精品| 欧美久久久久久久久中文字幕| 一区二区三区欧美激情| 色噜噜狠狠一区二区三区果冻| 国产精品久久99| 99久久99久久久精品齐齐| 欧美国产激情一区二区三区蜜月 | 欧美激情一区二区三区全黄| 极品少妇xxxx偷拍精品少妇| 日韩精品一区二区三区在线播放| 视频一区免费在线观看| 欧美精品一级二级三级| 亚洲成av人片一区二区梦乃| 欧美人妖巨大在线| 日韩电影一区二区三区| 日韩午夜电影av| 久久精品国产77777蜜臀| 欧美mv和日韩mv的网站|