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

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

?? ecusea.c

?? 一個通訊程序源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
char *cancel_msg = "\030\030\030\030\030\030\030\030\b\b\b\b\b\b\b\b";	ioctl(iofd,TCFLSH,(char *)1);	write(iofd,cancel_msg,16);	tx_char_count += 16;	report_str("CANCELling transfer",1);	report_last_txhdr("CAN",0);}	/* end of xmit_cancel *//*+-------------------------------------------------------------------------	xmit_ack(blknum)--------------------------------------------------------------------------*/voidxmit_ack(blknum)register int blknum;			/* block number */{char s16[16];	sprintf(s16,"ACK %3d",blknum);	report_last_txhdr(s16,0);	s16[0] = ACK;	s16[1] = blknum;			/* block number */	s16[2] = blknum ^ 0xFF;	/* block number check */	write(iofd,s16,3);	tx_char_count += 3;}	/* end of xmit_ack *//*+-------------------------------------------------------------------------	xmit_nak(blknum)--------------------------------------------------------------------------*/voidxmit_nak(blknum)register int blknum;			/* block number */{char s16[16];	sprintf(s16,"NAK %d",blknum);	report_last_txhdr(s16,1);	if(crc_in_use)		s16[0] = 'C';	else		s16[0] = NAK;	s16[1] = blknum;			/* block number */	s16[2] = blknum ^ 0xFF;	/* block number check */	write(iofd,s16,3);	tx_char_count += 3;}	/* end of xmit_nak *//*+-------------------------------------------------------------------------	lgetc_timeout_SIGALRM() - called when alarm is caught by lgetc_timeout--------------------------------------------------------------------------*/#if defined(NO_SELECT)voidlgetc_timeout_SIGALRM(sig)int sig;{	longjmp(lgetc_timeout_setjmp,TIMEOUT);}	/* end of lgetc_timeout_SIGALRM */#endif/*+-------------------------------------------------------------------------	lgetc_timeout(tenths) reads one character from line unless timeout in tenths passes with no receipt.--------------------------------------------------------------------------*/unsigned intlgetc_timeout(tenths)int tenths;{#if defined(NO_SELECT)unsigned char rdchar;long msec;int seconds;long Nap();#elseint fdmask;struct timeval tval;unsigned char rdchar;#endif	if(!tenths)	{		if(!rdchk(iofd))			return(TIMEOUT);		else		{			read(iofd,&rdchar,1);			rx_char_count++;			return((unsigned int)rdchar);		}	}#if defined(NO_SELECT)/* there is a timeout ... if less than 2 secs, nap it out */	if(tenths <= 20)	{		msec = (tenths < 6) ? 60L : (long)tenths * 10;		while(msec)		{			msec -= Nap(20L);			if(rdchk(iofd))			{				read(iofd,&rdchar,1);				rx_char_count++;				return((unsigned int)rdchar);			}		}		report_last_rxhdr("TIMEOUT",0);		return(TIMEOUT);	}/* timeout is > 2 seconds use sleep */	seconds = (tenths / 10) + 1;	if(setjmp(lgetc_timeout_setjmp))	{		report_last_rxhdr("TIMEOUT",0);		return(TIMEOUT);	}	signal(SIGALRM,lgetc_timeout_SIGALRM);	alarm(seconds);	while(read(iofd,&rdchar,1) != 1)		;	alarm(0);	signal(SIGALRM,SIG_DFL);#else	if(tenths < 6)		tenths = 6;	tval.tv_sec = tenths / 10L;	tval.tv_usec = (tenths % 10L) * 100000L;	fdmask = 1 << iofd;	if(select(32,&fdmask,(int *)0,(int *)0,&tval) != 1)	{		report_last_rxhdr("TIMEOUT",0);		return(TIMEOUT);	}	if((!rdchk(iofd)) || (read(iofd,&rdchar,1) < 0))	{		report_last_rxhdr("TIMEOUT",0);		return(TIMEOUT);	}#endif	rx_char_count++;	return((unsigned int)rdchar);}	/* end of lgetc_timeout *//*+-------------------------------------------------------------------------	sf_state_text(state)--------------------------------------------------------------------------*/char *sf_state_text(state)register state;{char unrecog[16];	switch(state)	{		case SFS_GND:	return("GND");		case SFS_ACK:	return("ACK");		case SFS_NAK:	return("NAK");		case SFS_ACKW:	return("ACKW");		case SFS_NAKW:	return("NAKW");		case SFS_RGND:	return("RGND");		default:			sprintf(unrecog,"SFS_%d",state);			return(unrecog);	}}	/* end of sf_state_text *//*+-------------------------------------------------------------------------	set_sf_state(place,new_state)--------------------------------------------------------------------------*/voidset_sf_state(place,new_state)int place;int new_state;{	if(log_packets)	{		sprintf(s128,"state from %s to %s (%d)",			sf_state_text(sf_state),sf_state_text(new_state),place);		report_str(s128,0);	}	sf_state = new_state;}	/* end of set_sf_state *//*+-------------------------------------------------------------------------	wait_for_rcvr_response() - check for ACK or NAK sets 'sf_state' to SFS_... value depending on response from file rcvr returns 1 if TIMEOUT at state other than ground, else 0--------------------------------------------------------------------------*/intwait_for_rcvr_response(){int c;						/* one byte of data */static int rawblk = 0;		/* raw block number */	while((c = lgetc_timeout((sf_state == SFS_GND) ? 0 : 6)) != TIMEOUT)	{		if(c == CAN)		{									/* CANcel received? */			if((c = lgetc_timeout(20)) == CAN)			{				sf_nakquan = 11;				report_last_rxhdr("CAN",0);	/* error counted at cancel time */			}			break;		}		if(sf_state == SFS_ACKW || sf_state == SFS_NAKW)	/* windowed */		{			sf_slide = 0;						/* assume this will fail */			/* see if we believe the number */			if(rawblk == (c ^ 0xFF))			{				rawblk = sf_blknum - ((sf_blknum - rawblk) & 0xFF);				if((rawblk >= 0) && (rawblk <= sf_blknum) &&					(rawblk > (sf_blknum - 128)))				{				/* we have sliding window! */					if(sf_state == SFS_ACKW)					{						sf_ackblk = (sf_ackblk > rawblk) ? sf_ackblk : rawblk;						sf_slide = 1;						if(no_ack_mode && (++sf_ackw_count > 10))						{							no_ack_mode = 0;							report_str("Overdrive disengaged",0);						}					}					else 					{						sf_blknum = (rawblk < 0) ? 0 : rawblk;						sf_slide = (sf_nakquan < 4);					}					sprintf(s128,"%s %5d",						(sf_state == SFS_ACKW) ? "ACKW" : "NAKW",rawblk);					report_last_rxhdr(s128,(sf_state != SFS_ACKW) && rawblk);				}			}			set_sf_state(1,SFS_RGND);	/* return to ground state */		}		if(sf_state == SFS_ACK || sf_state == SFS_NAK)		{			rawblk = c;			if(sf_state == SFS_ACK)				set_sf_state(2,SFS_ACKW);			else				set_sf_state(3,SFS_NAKW);		}		if(!sf_slide || sf_state == SFS_GND)		{			if(c == ACK)			{				if(!sf_slide)				{					sprintf(s128,"ACK %3d",sf_ackblk);					report_last_rxhdr(s128,0);					sf_ackblk++;				}				set_sf_state(4,SFS_ACK);				sf_nakquan = 0;			}			else if(c == 'C' || c == NAK)			{				/* if method not determined yet */				if(crc_in_use > 1)	/* then do what rcvr wants */				{					crc_in_use = (c == 'C');					report_protocol_crc_type(crc_in_use ? "/CRC16" : "/CHK");				}				ioctl(iofd,TCFLSH,(char *)1);				if(!sf_slide)				{					sf_blknum = sf_ackblk + 1;					sprintf(s128,"NAK %3d",sf_blknum);					report_last_rxhdr(s128,(!!sf_blknum));				}				set_sf_state(5,SFS_NAK);				sf_nakquan++;				if(sf_lastnum)					error_count++;			}		}		if(sf_state == SFS_RGND)			set_sf_state(6,SFS_GND);	}	return((sf_state != SFS_GND) && (c == TIMEOUT));}	/* end of wait_for_rcvr_response *//*+-------------------------------------------------------------------------	send_comm_block(blk,blknum) - format and transmit block--------------------------------------------------------------------------*/intsend_comm_block(blk,blknum)char *blk;				/* data to be shipped */int blknum;				/* number of block */{register unsigned short rUINT16 = 0;register int itmp;unsigned char chksum;char *cptr = blk;char s3[3];	s3[0] = SOH;				/* block header */	s3[1] = blknum;				/* block number */	s3[2] = blknum ^ 0xFF;		/* block number check value *//* calculate the crc or checksum */	itmp = 128;	if(crc_in_use)	{		while(itmp--)		{			rUINT16 = crc_update(*cptr,rUINT16);			cptr++;		}		rUINT16 = crc_update(0,rUINT16);		rUINT16 = crc_update(0,rUINT16);	}	else 	{		while(itmp--)			rUINT16 += *cptr++;	}/* write the block */	write(iofd,s3,3);						/* the header */	write(iofd,blk,128);					/* the block */	if(crc_in_use)							/* the crc or checksum */	{		s3[0] = rUINT16 >> 8;		s3[1] = rUINT16 & 0xFF;		write(iofd,s3,2);		tx_char_count += 133;	}	else	{		chksum = rUINT16;		write(iofd,&chksum,1);		tx_char_count += 132;	}	return(1);}	/* end of send_comm_block *//*+-------------------------------------------------------------------------	send_file_block(fp,blknum) - read a block from file and send it--------------------------------------------------------------------------*/voidsend_file_block(fp,blknum)FILE *fp;int blknum;{long fileaddr;char buf[128];	fileaddr = (long)(blknum - 1) * 128L;	if(blknum != sf_lastnum + 1)		fseek(fp,fileaddr,0);	/* move where to */	sf_lastnum = blknum;	report_txpos(fileaddr);	memset(buf,0x1A,sizeof(buf));	/* fill buffer with control Zs */	fread(buf,1,sizeof(buf),fp);	/* read in some data */	send_comm_block(buf,blknum);	/* pump it out to the receiver */}	/* end of send_file_block *//*+-------------------------------------------------------------------------	send_file(name) - transmit a file--------------------------------------------------------------------------*/intsend_file(name)char *name;{register int endblk;	/* block number of EOT */FILE *fp = (FILE *)0;	/* file to send */struct stat fst;BLK0 blk0;char *basename;			/* base filename */char eot = EOT;	Filcnt++;	if(name && *name)			/* if sending a file */	{		if((fp = fopen(name,"r")) == NULL)		{			sprintf(s128,"Cannot open %s",name);			report_str(s128,1);			exit_code = 253;			return(0);		}		memset((char *)&blk0,0,sizeof(blk0)); /* clear out data block */		stat(name,&fst);	/* get file statistics */		blk0.length = (long)fst.st_size;		/* cnvt time from 1970 base to 1980 */		if((blk0.secs_since_1980 = fst.st_mtime-OFFSET_1980) < 0L)			blk0.secs_since_1980 = 0;		if((basename = strrchr(name,'/')) == NULL) /* find basename */			strcpy(blk0.filename,name);		else 		{			basename++;			strcpy(blk0.filename,basename);		}		strcpy(blk0.sender,"ecusea ");		strcat(blk0.sender,revision);		blk0.send_no_acks = no_ack_mode;		endblk = (int)((blk0.length + 127L) / 128L) + 1;		report_file_send_open(name,&fst);	}	else 	{		endblk = 0;						/* fake for no file */		report_str("sending EOT indication",-1);		report_txpos(blk0.length);	}	sf_blknum = 1;						/* set starting state */	sf_ackblk = -1;	sf_state = SFS_GND;	sf_lastnum = 0;	sf_slide = 0;	sf_nakquan = 0;	error_count = 0;	sf_ackw_count = 0;	crc_in_use = 2;						/* undetermined */	while(sf_ackblk < endblk)			/* while not all there yet */	{		sent_EOT = 0;		if(sf_blknum <= sf_ackblk + ((sf_slide && allow_slide) ? WINDOW : 1))		{			if(sf_blknum < endblk)			{				if(sf_blknum > 0)				{					sprintf(s128,"sending block %d",sf_blknum);					report_last_txhdr(s128,0);					send_file_block(fp,sf_blknum);				}				else				{					sprintf(s128,"sending filename",sf_blknum);					report_last_txhdr(s128,0);					send_comm_block((char *)&blk0,0);					report_txpos(0L);				}				if(no_ack_mode && sf_slide && allow_slide)					sf_ackblk = sf_blknum;			}			else if(sf_blknum == endblk)			{				report_last_txhdr("EOT",0);				write(iofd,&eot,1);				sent_EOT = 1;				Nap(500L);				tx_char_count++;			}			sf_blknum++;		}		if(wait_for_rcvr_response() && sent_EOT)		{			report_str("Receiver did not ACK our EOT",-1);			break;		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区在线视频| 国产成人aaaa| 成人美女在线视频| 欧美人与z0zoxxxx视频| 欧美激情一区二区三区蜜桃视频| 亚洲一区视频在线观看视频| 国产毛片一区二区| 欧美一区二区三区影视| 日韩码欧中文字| 大胆欧美人体老妇| 久久亚洲综合色| 蜜桃av一区二区| 欧美另类一区二区三区| 亚洲日本一区二区| 成人毛片在线观看| 久久久精品免费网站| 蜜臀久久99精品久久久久久9| 欧美性高清videossexo| 亚洲欧美激情在线| 91在线观看视频| 国产精品免费aⅴ片在线观看| 国精品**一区二区三区在线蜜桃| 欧美精品xxxxbbbb| 水野朝阳av一区二区三区| 欧美综合色免费| 一二三区精品视频| 欧美中文字幕一二三区视频| 亚洲欧美日韩在线| 在线观看av不卡| 亚洲精品国久久99热| 一本色道综合亚洲| 亚洲愉拍自拍另类高清精品| 色综合久久久网| 亚洲精品日韩一| 欧美撒尿777hd撒尿| 亚洲国产裸拍裸体视频在线观看乱了| 91豆麻精品91久久久久久| 一区二区三区在线观看动漫| 欧美专区日韩专区| 天堂资源在线中文精品| 欧美高清一级片在线| 日本欧美大码aⅴ在线播放| 日韩视频免费观看高清完整版在线观看 | 国产精品久久久久久福利一牛影视| 国产精品综合久久| 国产丝袜欧美中文另类| 成人精品免费视频| 亚洲女爱视频在线| 欧美日韩aaaaaa| 久久精品国产免费| 国产欧美一二三区| 91麻豆.com| 视频一区二区三区中文字幕| 欧美电影免费提供在线观看| 丁香天五香天堂综合| 亚洲美女在线一区| 欧美大尺度电影在线| 国产精品一二三四区| 亚洲免费观看高清完整版在线观看熊 | 国产精品影视在线观看| 中文字幕一区av| 制服.丝袜.亚洲.另类.中文| 国模一区二区三区白浆| 亚洲精选视频免费看| 欧美男男青年gay1069videost | 亚洲女人的天堂| 日韩限制级电影在线观看| 国产xxx精品视频大全| 一片黄亚洲嫩模| 久久综合精品国产一区二区三区| 成人aa视频在线观看| 午夜电影一区二区三区| 国产亚洲欧洲997久久综合| 91在线porny国产在线看| 日av在线不卡| 亚洲欧美偷拍另类a∨色屁股| 日韩免费观看2025年上映的电影| 99视频在线精品| 国产在线观看一区二区| 一区二区三区四区国产精品| 久久久久久久av麻豆果冻| 欧美在线观看视频一区二区三区| 国产在线一区观看| 石原莉奈在线亚洲三区| 亚洲另类一区二区| 日本一区二区三区电影| 精品国一区二区三区| 欧美日精品一区视频| 91在线观看污| 粉嫩蜜臀av国产精品网站| 久久国产精品99精品国产| 亚洲成人黄色影院| 亚洲自拍偷拍九九九| 国产精品二区一区二区aⅴ污介绍| 欧美成人精精品一区二区频| 欧美系列一区二区| 欧美在线三级电影| 在线视频国产一区| 99精品欧美一区二区蜜桃免费| 国产剧情一区二区| 狠狠久久亚洲欧美| 久久99最新地址| 美女视频黄a大片欧美| 天天色 色综合| 日韩不卡在线观看日韩不卡视频| 亚洲综合激情网| 亚洲综合一区二区精品导航| 亚洲男人天堂一区| 亚洲女同ⅹxx女同tv| 中文字幕一区av| 亚洲素人一区二区| 亚洲精品美国一| 亚洲网友自拍偷拍| 三级久久三级久久| 男女性色大片免费观看一区二区 | 亚洲综合在线观看视频| 1024成人网| 亚洲黄色免费电影| 亚洲va天堂va国产va久| 日韩国产欧美在线观看| 日韩影院免费视频| 蜜臀va亚洲va欧美va天堂| 免费成人性网站| 国产真实乱对白精彩久久| 国产成人免费高清| 91色婷婷久久久久合中文| 色综合久久中文综合久久97| 欧美专区在线观看一区| 欧美电影一区二区| 久久新电视剧免费观看| 国产精品久久久久久久久免费桃花| 国产精品―色哟哟| 亚洲综合区在线| 日韩国产高清影视| 国产成人一区在线| 91福利在线播放| 欧美tickling挠脚心丨vk| 中文字幕国产一区| 亚洲午夜激情网站| 久久99精品国产麻豆婷婷| 成人一区二区三区在线观看| 色欧美88888久久久久久影院| 欧美日产在线观看| 亚洲国产精品成人综合色在线婷婷| 亚洲男同1069视频| 九九精品一区二区| 色综合久久久久久久久久久| 91超碰这里只有精品国产| 国产欧美日韩视频一区二区| 一区二区三区不卡在线观看| 精品午夜久久福利影院| 91香蕉视频mp4| 久久综合久久综合亚洲| 亚洲黄色免费网站| 国产激情精品久久久第一区二区 | 欧美少妇性性性| 国产亚洲美州欧州综合国 | 日韩一区在线看| 日本三级韩国三级欧美三级| 福利一区二区在线观看| 欧美人体做爰大胆视频| 国产精品亲子伦对白| 日本欧美大码aⅴ在线播放| 菠萝蜜视频在线观看一区| 日韩午夜av电影| 一区二区三区蜜桃| 国产91露脸合集magnet| 91精品在线麻豆| 亚洲六月丁香色婷婷综合久久 | 中文字幕一区二区三区在线观看 | 日韩影院免费视频| 色哟哟国产精品免费观看| 久久婷婷综合激情| 日韩av一区二区三区四区| 91在线porny国产在线看| 国产亚洲视频系列| 精品一区二区av| 91精品欧美久久久久久动漫| 亚洲精品伦理在线| 91丨porny丨蝌蚪视频| 欧美国产一区二区| 国产高清精品久久久久| 精品成人在线观看| 免费三级欧美电影| 欧美日韩一区二区三区在线看| 日韩理论片在线| 成人h版在线观看| 国产精品网站在线播放| 国产激情一区二区三区| 精品国产伦一区二区三区观看方式| 日韩高清在线电影| 91精品免费观看| 麻豆91精品视频| 日韩你懂的在线播放| 另类中文字幕网| 精品国产伦一区二区三区观看方式| 美女www一区二区| 26uuu久久综合| 成人妖精视频yjsp地址| 亚洲国产高清在线|