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

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

?? zmodem.c

?? vxworks不支持ZMODEM協(xié)議
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*    ZFILE .... Zmodem filename received                                   */
/*    ZCOMPL ... transaction finished                                       */
/*    ERROR .... any other condition                                        */
/*--------------------------------------------------------------------------*/
static int zInitReceiver( void )                    /* 初始化接收器 ,收ZFILE之前 */
{ 
	int iHdrBits,iErrors = 0;

    for ( iHdrBits = 3; --iHdrBits >= 0; )
    {
        zPutLongIntoHeader( 0L );
        gpcTxhdr[ ZF0 ] = CANFDX;           /* | CANOVIO; */
        zSendHexHeader( gcTryZhdrType, gpcTxhdr );
AGAIN:
        switch ( zGetHeader( gpcRxhdr ) )
        {
            case ZRQINIT:               /*USED*/
                zPutLongIntoHeader( 0L );
                gpcTxhdr[ ZF0 ] = CANFDX;   /* | CANOVIO; */
                zSendHexHeader( ZRINIT, gpcTxhdr );
                goto AGAIN;
            case ZFILE:                 /*USED*/
                gcZconv = gpcRxhdr[ ZF0 ];
                gcTryZhdrType = ZRINIT;
                if( zReceiveData( gpcRecBuf,WAZOOMAX ) == GOTCRCW ) 
                {
                	return ( ZFILE );
                }	
                zSendHexHeader( ZNAK, gpcTxhdr );
                goto AGAIN;
            case ZSINIT:               /*not used*/
                if( zReceiveData( gpcAttn, ZATTNLEN ) == GOTCRCW ) 
                {
                	zSendHexHeader( ZACK,gpcTxhdr );
                }	
                else 
                {
                	zSendHexHeader( ZNAK,gpcTxhdr );
                }	
                goto AGAIN;
            case ZFREECNT:             /*not used*/
                zPutLongIntoHeader( WAZOOMAX );
                zSendHexHeader( ZACK, gpcTxhdr );
                goto AGAIN;
            case ZCOMMAND:             /*not used*/
              /*-----------------------------------------*/
              /* Paranoia is good for you...             */
              /* Ignore command from remote, but lie and */
              /* say we did the command ok.              */
              /*-----------------------------------------*/
                if ( zReceiveData( gpcRecBuf,WAZOOMAX ) == GOTCRCW )
                {
                    zPutLongIntoHeader( 0L );
                    do
                    {
                    	zSendHexHeader( ZCOMPL, gpcTxhdr );
                    } while ( ++iErrors < 10 && zGetHeader( gpcRxhdr ) != ZFIN );
                    zAckBibi( );
                    return ( ZCOMPL );
                }
                else
                {
                	zSendHexHeader( ZNAK, gpcTxhdr );
                }
                goto AGAIN;
           case ZCOMPL:      /*not used*/
            	goto AGAIN;
           case ZFIN:         /*USED*/
           	    zAckBibi( );
           	    return ( ZCOMPL );
           case ZCAN:         /*USED*/
           case ZZRCDO:
           	    return ( ZZERROR );
           case ZZTIMEOUT:    /*USED*/
           	    return ( ZZERROR );
        }
    }
    return ( ZZERROR );
}


/*--------------------------------------------------------------------------*/
/* RZ GET HEADER                                                            */
/* Process incoming file information header                                 */
/*--------------------------------------------------------------------------*/


static int zGetZFILEHeader( void )                 /* 收ZFILE frame的header */
{
	 char *pcTempBuf;
	 char i = 0;

     giFilesize = 0L;
     pcTempBuf = gpcRecBuf;
     while ( *pcTempBuf )
     {
     	gpcFilename[ i++ ] = *p++;
     }
     gpcFilename[ i ] = '\0';
     if( ( giFdRevFile = open ( "gpcFilename", O_RDWR | O_CREAT , 0644 ) ) == ERROR )
     {
         printf(" [zGetZFILEHeader]:Creat file failed ! " );                
         return( 0 );
     }
     pcTempBuf++;
     while ( *pcTempBuf )
     {
     	giFilesize = giFilesize * 10 + ( *pcTempBuf - '0' );
     	pcTempBuf++;
     }
     return ( ZZOK );
}


/*--------------------------------------------------------------------------*/
/* RZ SAVE TO DISK                                                          */
/* Writes the received file data to the output file.                        */
/*                                                                          */
/*--------------------------------------------------------------------------*/

static int zSaveToDisk( int *prxbytes )
{
	int iWriteBytes;
    if( ( iWriteBytes = write( giFdRevFile, pcFileBuff, giRxCount ) ) == ERROR )
    {
        printf( "[zSaveToDisk]:Write File error!\n" );
        return( ZZERROR );
    }
    *prxbytes += giRxCount;
    return ( ZZOK );
}

/*--------------------------------------------------------------------------*/
/* RZ RECEIVE FILE                                                          */
/* Receive one file; assumes file name frame is preloaded in gpcRecBuf      */
/*--------------------------------------------------------------------------*/
static int zReceiveFile( char *pcFileBuf )   /*先發(fā)ZRPOS接著開始收ZDATA、data subpacket*/
{
     int iRecChar, iRetryTimes;

     iRetryTimes = 10;                 /* retry times */
     giRecBytes  = 0L;
     while( 1 )
     {
         zPutLongIntoHeader( giRecBytes );
         zSendHexHeader( ZRPOS, gpcTxhdr );
NxtHdr:
         switch ( iRecChar = zGetHeader( gpcRxhdr ) )
         {
		     case ZDATA:                          /* Data Packet */
			     if ( giRxpos != giRecBytes )
			     {
                     if ( --iRetryTimes < 0 )
                     {
                     	return ( ZZERROR );
                     }
                     continue;
                 }
MoreData:
             switch ( iRecChar = zReceiveData( gpcRecBuf + giRecBytes, WAZOOMAX ) )
             {
                 case ZCAN:
                 case ZZRCDO:
                 	 return ( ZZERROR );          /*CAN or CARRIER*/
                 case ( ZZERROR ):                /* CRC error*/
                 	 if ( --iRetryTimes<0 )
                 	 {
                 		 return ( ZZERROR );
                 	 }
                     continue;
                 case ZZTIMEOUT:                  /*Timeout*/
                     if ( --iRetryTimes < 0 )
                     {
                     	return ( ZZERROR );
                     }
                     continue;
                 case GOTCRCW:                    /* End of frame*/
                     iRetryTimes = 10;
                     if ( zSaveToDisk( &giRecBytes ) == ZZERROR )
                     {
                     	return ( ZZERROR );
                     }
                     zPutLongIntoHeader( giRecBytes );
                     zSendHexHeader( ZACK, gpcTxhdr );
                     goto NxtHdr;
                 case GOTCRCQ:                    /* Zack expected*/
                     iRetryTimes = 10;
                     if ( zSaveToDisk( &giRecBytes ) == ZZERROR )
                     {
                     	return ( ZZERROR );
                     }
                     zPutLongIntoHeader( giRecBytes );
                     zSendHexHeader( ZACK, gpcTxhdr );
                     goto MoreData;
                 case GOTCRCG:                    /* Non-stop*/
                     iRetryTimes = 10;
                     if ( zSaveToDisk( &giRecBytes ) == ZZERROR )
                     {
                     	return ( ZZERROR );
                     }
                     goto MoreData;
                 case GOTCRCE:                    /* Header to follow*/
                 iRetryTimes = 10;
                 if ( zSaveToDisk( &giRecBytes ) == ZZERROR )
                 {
                 	return ( ZZERROR );
                 }
                 goto NxtHdr;
             }     /* end of switch */
             case ZNAK:
             case ZZTIMEOUT:                     /* Packed was probably garbled */
                 if ( --iRetryTimes < 0)
                 {
                 	return ( ZZERROR );
                 }
                 continue;
             case ZFILE:                         /* Sender didn't see our ZRPOS yet */
                 zReceiveData( gpcRecBuf, WAZOOMAX );
                 continue;
             case ZEOF:                          /* End of the file*/
                 if ( giRxpos != giRecBytes )
                 {
                 	continue;
                 }
                 return iRecChar;
            case ZZERROR:                        /* Too much garbage in header search error */
                if ( --iRetryTimes < 0 )
                {
                	return ( ZZERROR );
                }
                continue;
            default:
            	return ( ZZERROR );
         }        /* end of switch */
     }            /* end of while  */
}



/*--------------------------------------------------------------------------*/
/* RZFILES                                                                  */
/* Receive a batch of files using ZMODEM protocol                           */
/*--------------------------------------------------------------------------*/
static int zReceiveBatch( char *pcFileBuf )  /*接收多個文件*/
{
	 int iGetType;
     while( 1 )
     {
         switch ( iGetType = zReceiveFile( pcFileBuf ) ) 
         {
             case ZEOF:
             case ZSKIP:
                 switch ( zInitReceiver() )
                 {
                     case ZCOMPL:
                     	 return ZZOK;
                     case ZFILE:
                     	 break;
                     default:
                     	 return ZZERROR;
                 }
                 break;
                 default:
                 	 return ( iGetType );
         }
     }
}

/*--------------------------------------------------------------------------*/
/* GET ZMODEM                                                               */
/* Receive a batch of files.                                                */
/* returns TRUE (1) for good xfer, FALSE (0) for bad                        */
/* can be called from f_upload or to get mail from a WaZOO Opus             */
/*--------------------------------------------------------------------------*/
static int zGetZmodem( void )   
{
	int iRecType;
    gcTryZhdrType = ZRINIT;
    zClearByte( );
    iRecType = zInitReceiver( );
    if ( ( iRecType == ZCOMPL ) || ( ( iRecType == ZFILE ) &&
       ( ( zReceiveBatch( gpcRecBuf ) ) == ZZOK ) ) )
    {
        SendHEX( 1, giRecBytes>>24 );
        SendHEX( 1, giRecBytes>>16 );
        SendHEX( 1, giRecBytes>>8  );
        SendHEX( 1, giRecBytes     );
    /*     SendBuffer( 1," bytes received!!!\x0d\x0a" );  */
        zClearByte( );
        return ( giRecBytes );
    }
    else
    {
    /*     SendBuffer( 1,"Download error!!!\x0d\x0a" );   */
        zClearByte( );
        return ( 0L );
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性xxxxxx少妇| 亚洲人快播电影网| 一区二区三区不卡在线观看 | 亚洲精品中文字幕在线观看| 日本伊人色综合网| 91精彩视频在线观看| 久久久国际精品| 免费观看日韩电影| 欧美探花视频资源| 一区二区三区在线高清| 国产成人精品免费在线| 日韩精品自拍偷拍| 欧美a一区二区| 69av一区二区三区| 亚洲mv大片欧洲mv大片精品| 91丨porny丨户外露出| 日本一区二区免费在线| 国产在线视频一区二区| 欧美一区二区福利在线| 日本欧洲一区二区| 91精品国产综合久久精品性色 | 色偷偷久久一区二区三区| 中文字幕精品在线不卡| 国产一区二区日韩精品| 亚洲精品在线观| 激情综合色综合久久综合| 亚洲精品一区二区三区影院 | 精品一区二区三区免费观看| 日韩欧美中文字幕制服| 日韩高清国产一区在线| 欧美日韩国产a| 日本特黄久久久高潮| 777色狠狠一区二区三区| 偷拍一区二区三区四区| 91精品一区二区三区在线观看| 肉丝袜脚交视频一区二区| 欧美伦理电影网| 免费高清成人在线| 久久丝袜美腿综合| 国产91丝袜在线18| 中文字幕在线免费不卡| 色婷婷狠狠综合| 亚洲1区2区3区视频| 欧美一区二区免费视频| 精品一区二区国语对白| 欧美国产精品一区二区三区| 99视频精品全部免费在线| 亚洲综合另类小说| 制服丝袜中文字幕一区| 国模大尺度一区二区三区| 欧美国产精品专区| 欧洲亚洲国产日韩| 奇米影视一区二区三区小说| 国产欧美日韩精品a在线观看| 成人成人成人在线视频| 亚洲成人先锋电影| 精品久久久久久最新网址| 成人免费福利片| 亚洲精品免费在线观看| 欧美一区永久视频免费观看| 国产精品一区二区无线| 夜夜亚洲天天久久| 久久久久久久性| 欧美视频一区二区三区在线观看| 日本女人一区二区三区| 国产精品三级av在线播放| 欧美日韩国产电影| 丰满放荡岳乱妇91ww| 亚瑟在线精品视频| 国产精品美女久久久久久久久久久 | 亚洲欧洲一区二区在线播放| 欧美精品三级在线观看| 国产**成人网毛片九色| 日日噜噜夜夜狠狠视频欧美人| 久久精品欧美日韩精品| 欧美日韩视频在线第一区| 国产精品自拍网站| 午夜精品国产更新| 国产精品女上位| 精品美女被调教视频大全网站| 91美女在线看| 狠狠色狠狠色综合系列| 午夜精品福利在线| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人av资源| 国产精品美女久久久久av爽李琼 | 欧美日韩国产中文| av成人免费在线观看| 国产一区日韩二区欧美三区| 五月综合激情婷婷六月色窝| 国产精品女人毛片| 亚洲精品在线观看网站| 欧美一区二区三区公司| 欧美图片一区二区三区| 91麻豆国产福利在线观看| 高清视频一区二区| 国产激情精品久久久第一区二区 | 久久久久国产精品麻豆ai换脸 | 亚洲婷婷综合久久一本伊一区| 欧美成人女星排行榜| 欧美疯狂性受xxxxx喷水图片| 97国产一区二区| eeuss鲁片一区二区三区| 国产成人精品亚洲午夜麻豆| 国内外成人在线视频| 久久精品国产亚洲一区二区三区| 日韩精品视频网站| 日韩主播视频在线| 天天综合网 天天综合色| 亚洲国产人成综合网站| 亚洲国产精品综合小说图片区| 亚洲人成网站在线| 亚洲视频一二三| 洋洋av久久久久久久一区| 一区二区三区中文字幕| 有码一区二区三区| 亚洲国产视频直播| 婷婷中文字幕一区三区| 麻豆国产精品一区二区三区| 经典三级在线一区| 国产在线一区二区| 成人午夜大片免费观看| 成人精品视频一区| 色婷婷国产精品| 欧美精品色综合| 精品国产乱码久久久久久图片| 精品国产一区二区在线观看| 国产日韩精品一区二区三区| 日韩一区欧美小说| 五月开心婷婷久久| 国模大尺度一区二区三区| 从欧美一区二区三区| 色欧美88888久久久久久影院| 欧美日韩卡一卡二| 精品对白一区国产伦| 国产精品久久久久影院亚瑟| 樱桃国产成人精品视频| 视频一区欧美日韩| 国产成人精品免费看| 色综合久久天天| 欧美tickling挠脚心丨vk| 欧美国产成人精品| 亚洲成人av福利| 狠狠色伊人亚洲综合成人| 99久精品国产| 欧美一区二区在线播放| 中文字幕不卡在线观看| 亚洲一二三四区不卡| 韩国女主播成人在线| 色综合天天狠狠| 欧美精品一区二区三区一线天视频| 国产精品你懂的在线| 免费观看久久久4p| 色八戒一区二区三区| 精品国产伦一区二区三区观看方式| 国产精品国产精品国产专区不片| 日韩精品欧美精品| 91色.com| 久久色视频免费观看| 亚洲午夜视频在线观看| 丁香网亚洲国际| 337p亚洲精品色噜噜| 亚洲激情自拍偷拍| 国产乱淫av一区二区三区| 91成人网在线| 中文字幕精品在线不卡| 美日韩一级片在线观看| 欧美亚洲一区二区在线观看| 国产精品色一区二区三区| 久久99精品久久久久久久久久久久| 91小视频在线| 国产偷国产偷精品高清尤物| 男女男精品视频网| 欧美色图天堂网| 亚洲欧美日韩电影| 成人黄色在线网站| 久久久777精品电影网影网 | 亚洲国产综合在线| 色综合久久88色综合天天6| 欧美国产在线观看| 国产麻豆精品在线| 精品裸体舞一区二区三区| 日韩av网站免费在线| 欧美视频自拍偷拍| 亚洲已满18点击进入久久| 色8久久精品久久久久久蜜| 中文字幕免费在线观看视频一区| 国产一区二区三区在线观看免费| 在线综合视频播放| 五月天精品一区二区三区| 欧美另类z0zxhd电影| 亚洲国产婷婷综合在线精品| 91精品1区2区| 亚洲一区二区黄色| 欧美日韩久久不卡| 日日夜夜免费精品| 日韩网站在线看片你懂的| 九一久久久久久| 久久久久久久久一| 国产99精品在线观看|