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

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

?? zsend.c

?? zmodem文件傳輸協議的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*--------------------------------------------------------------------------*/
/* FILE: zsend.c    (Opus zmodem transmitter)                               */
/*                                                                          */
/*                                                                          */
/*               The Opus Computer-Based Conversation System                */
/*       (c) Copyright 1986, Wynn Wagner III, All Rights Reserved           */
/*                                                                          */
/*      This implementation of Chuck Forsberg's ZMODEM protocol was         */
/*              for Opus by Rick Huebner and Wynn Wagner III                */
/*                                                                          */
/* (MSC/4 with /Zp /Ox)                                                     */
/*                                                                          */
/*                                                                          */
/*                                                                          */
/*                                                                          */
/*  This module is similar to a routine used by Opus-Cbcs (1.00).  It is    */
/*  provided for your information only.  You will find routines that need   */
/*  to be coded and identifiers to be resolved.                             */
/*                                                                          */
/*  There is absolutely no guarantee that anything here will work.  If you  */
/*  break this routine, you own both pieces.                                */
/*                                                                          */
/*  USAGE:  You may use this material in any program with no obligation     */
/*          as long as there is no charge for your program.  For more       */
/*          information about commercial use, contact the "OPUSinfo HERE"   */
/*          BBS (124/111).                                                  */
/*                                                                          */
/*  NOTE:   There are a couple of things the Opus implementation does that  */
/*          aren't part of the original ZModem protocol.  They all deal     */
/*          with WaZOO type ("ZedZap") netmail and should only show up when */
/*          used under that condition.                                      */
/*                                                                          */
/*             * The maximum packet size can grow larger than 1k.  It is    */
/*               sensitive to the baud rate.  (2400b=2048k; 9600b=8192k)    */
/*             * The sender must be able to send nothing.  In other words,  */
/*               the sending system must be able to initiate and terminate  */
/*               a zmodem send session without having to actually send a    */
/*               file.  Normally this kind of thing would never happen in   */
/*               zmodem.                                                    */
/*                                                                          */
/*                                                                          */
/*--------------------------------------------------------------------------*/

#include "zmodem.h"


/*--------------------------------------------------------------------------*/
/* Global routines                                                          */
/*--------------------------------------------------------------------------*/
int cdecl send_Zmodem(byte *,byte *,int,int,int);


/*--------------------------------------------------------------------------*/
/* Private routines                                                         */
/*--------------------------------------------------------------------------*/
static void pascal ZS_SendBinaryHeader(unsigned short ,byte *);
static void pascal ZS_SendData(byte *,int,unsigned short);
static void pascal ZS_SendByte(byte);
static int  pascal ZS_GetReceiverInfo(void);
static int  pascal ZS_SendFile(int,int);
static int  pascal ZS_SendFileData(int);
static int  pascal ZS_SyncWithReceiver(void);
static void pascal ZS_EndSend(void);



/*--------------------------------------------------------------------------*/
/* Private data                                                             */
/*--------------------------------------------------------------------------*/
static FILE *Infile;             /* Handle of file being sent               */
static byte *Txbuf;              /* Pointer to transmit buffer              */
static long  Strtpos;            /* Starting byte position of download      */
static long  Txpos;              /* Transmitted file position               */
static int Rxbuflen;             /* Receiver's max buffer length            */


/*--------------------------------------------------------------------------*/
/* External data not otherwise declared                                     */
/*--------------------------------------------------------------------------*/
extern char *FLAGGING_msg;
extern char *NOTSENT_msg;
extern char *TRUNC_msg;
extern char *KBD_msg;






/*--------------------------------------------------------------------------*/
/* SEND ZMODEM (send a file)                                                */
/*   returns TRUE (1) for good xfer, FALSE (0) for bad                      */
/*   sends one file per call; 'fsent' flags start and end of batch          */
/*--------------------------------------------------------------------------*/
int cdecl send_Zmodem(fname,alias,doafter,fsent,wazoo)
   byte  *fname;
   byte  *alias;
   int   doafter;
   int   fsent;
   int   wazoo;
   begin
      register byte *p;
      register byte *q;
      struct stat    f;

      int   i;
      int   rc;


      _BRK_DISABLE();
      XON_ENABLE();

      errno    =
      z_size   = 0;
      Infile   = NULL;
      Txbuf    = NULL;



      if (fname) set_xy("");

      switch(fsent)
         begin
            case 0:
            case NOTHING_TO_DO:  n_disable();
                                 if (!wazoo)
                                    begin
                                       Z_PutString("rz\r");
                                       Z_PutLongIntoHeader(0L);
                                       Z_SendHexHeader(ZRQINIT, Txhdr);
                                    end
                                 Rxtimeout   = 20;
                                 if (ZS_GetReceiverInfo() == ERROR) return FALSE;
         end


      Rxtimeout   = (int )(614400L/(long )cur_baud);
      Rxtimeout  /= 10;

      if (Rxtimeout < 10) Rxtimeout = 10;
      if (Rxtimeout > 58) Rxtimeout = 58;


      if (fname == NULL) goto Done;

      /*--------------------------------------------------------------------*/
      /* Prepare the file for transmission.  Just ignore file open errors   */
      /* because there may be other files that can be sent.                 */
      /*--------------------------------------------------------------------*/
      Filename = fname;
      CLEAR_IOERR();
      Infile   = fopen(Filename,read_binary);
      if (had_error(OPEN_msg,Filename)) return OK;
      
      Txbuf    = zalloc();

      /*--------------------------------------------------------------------*/
      /* Send the file                                                      */
      /*--------------------------------------------------------------------*/
      rc       = TRUE;


      /*--------------------------------------------------------------------*/
      /* Display outbound filename, size, and ETA for sysop                 */
      /*--------------------------------------------------------------------*/
      fstat(fileno(Infile), &f);

      message(NULL);
      cprintf( "Z-Send %s, %ldb",Filename,f.st_size);

      i  = (int)(f.st_size*10/cur_baud+27)/54;
      if (i) cprintf(", %d min.",i);

      set_xy(NULL);

      /*--------------------------------------------------------------------*/
      /* Get outgoing file name; no directory path, lower case              */
      /*--------------------------------------------------------------------*/
      for (p=(alias!=NULL)?alias:Filename, q=Txbuf ; *p; )
         begin
            if ((*q++ = tolower(*p)) == '\\') q = Txbuf;
            p++;
         end

      *q++  = '\0';
      p     = q;

      /*--------------------------------------------------------------------*/
      /* Zero out remainder of file header packet                           */
      /*--------------------------------------------------------------------*/
      while (q < (Txbuf + KSIZE)) *q++ = '\0';

      /*--------------------------------------------------------------------*/
      /* Store filesize, time last modified, and file mode in header packet */
      /*--------------------------------------------------------------------*/
      sprintf(p, "%lu %lo %o", f.st_size, f.st_mtime, f.st_mode);

      /*--------------------------------------------------------------------*/
      /* Transmit the filename block and begin the download                 */
      /*--------------------------------------------------------------------*/
      throughput(0,0L);


      /*--------------------------------------------------------------------*/
      /* Check the results                                                  */
      /*--------------------------------------------------------------------*/
      switch( ZS_SendFile(1+strlen(p)+(p-Txbuf), wazoo) )
         begin

            case ERROR: /*--------------------------------------------------*/
                        /* Something tragic happened                        */
                        /*--------------------------------------------------*/
                        if (wazoo)
                           begin
                              status_line( NOTSENT_msg );
                              mdm_hangup();
                           end
                        goto Err_Out;


            case OK:    /*--------------------------------------------------*/
                        /* File was sent                                    */
                        /*--------------------------------------------------*/
                        CLEAR_IOERR();
                        fclose(Infile);
                        had_error(CLOSE_msg,Filename);
                        Infile   = NULL;

                        status_line( "=DL %s", Filename );

                        /*--------------------------------------------------*/
                        /* Special WaZOO file handling following a          */
                        /* successful transmission.                         */
                        /*--------------------------------------------------*/
                        switch(doafter)
                           begin
                              case DELETE_AFTER:   /*-----------------------*/
                                                   /* Delete File           */
                                                   /*-----------------------*/
                                                   CLEAR_IOERR();
                                                   unlink(Filename);
                                                   had_error(UNLINK_msg,Filename);
                                                   break;
   
                              case TRUNC_AFTER:    /*-----------------------*/
                                                   /* Truncate File         */
                                                   /*-----------------------*/
                                                   CLEAR_IOERR();
                                                   i = open(Filename,O_TRUNC,S_IWRITE);
                                                   had_error( TRUNC_msg, Filename );
                                                   status_line(FLAGGING_msg,Filename);
                                                   close(i);
                                                   break;
                           end /* switch */


            default:    /*--------------------------------------------------*/
                        /* Probably a ZSKIP                                 */
                        /*--------------------------------------------------*/
                        goto Done;

         end /* switch */

Err_Out:
      rc = FALSE;

Done:
      if (Infile) fclose(Infile);
      if (Txbuf)  free(Txbuf);

      if (fsent < 0) ZS_EndSend();

      return rc;

   end /* send_Zmodem */



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清在线电影| 中文字幕免费在线观看视频一区| 久久精品国产亚洲aⅴ| 亚洲欧美偷拍另类a∨色屁股| 精品久久久久99| 欧美日韩精品电影| 欧美日韩一二三| 欧美精品在线一区二区三区| 欧美三级在线播放| 欧美一级在线观看| 精品国产制服丝袜高跟| 日韩精品一区二区三区四区视频 | 日韩一区二区精品在线观看| 欧美人与性动xxxx| 日韩亚洲欧美高清| 国产日韩精品一区| 亚洲人成7777| 亚洲一区二区三区四区在线 | 日韩亚洲欧美一区二区三区| 69成人精品免费视频| 欧美日韩国产精品自在自线| 678五月天丁香亚洲综合网| 欧美久久久久久蜜桃| 日韩精品在线网站| 欧美国产亚洲另类动漫| 亚洲欧美日韩国产成人精品影院| 亚洲精品国产一区二区精华液| 依依成人综合视频| 青椒成人免费视频| 国产一区二区导航在线播放| av综合在线播放| 日韩欧美高清dvd碟片| 久久久久国色av免费看影院| 亚洲精品国产一区二区精华液| 亚洲国产成人高清精品| 国产主播一区二区三区| 成人激情免费视频| 91精品国产综合久久久久久久| 久久久久久久综合日本| 一区二区三区四区在线| 久久国产精品免费| 欧美在线小视频| 久久久久久99精品| 视频一区国产视频| av不卡免费在线观看| 日韩欧美色综合| 亚洲欧洲精品一区二区三区| 日韩国产欧美在线观看| 高潮精品一区videoshd| 欧美大度的电影原声| 亚洲黄色小说网站| 成人午夜激情片| 欧美精品一区二| 亚洲综合色噜噜狠狠| 99久久免费视频.com| 久久久久久免费网| 日韩—二三区免费观看av| 日本道免费精品一区二区三区| 精品久久久三级丝袜| 污片在线观看一区二区| 99精品欧美一区二区蜜桃免费 | 欧美成人精品二区三区99精品| 亚洲激情一二三区| 国产成人aaaa| 久久精品人人做人人综合 | 成人高清视频在线| 久久免费视频色| 久久99国产乱子伦精品免费| 欧美日韩三级一区| 午夜天堂影视香蕉久久| 91国偷自产一区二区使用方法| 国产精品久久久久影院亚瑟| 国产真实乱子伦精品视频| 日韩美一区二区三区| 三级成人在线视频| 在线不卡欧美精品一区二区三区| 亚洲精品久久7777| 欧美亚一区二区| 亚洲第一福利视频在线| 欧美午夜电影一区| 亚洲国产成人av| 欧美欧美午夜aⅴ在线观看| 午夜精品国产更新| 日韩欧美在线不卡| 久久激情五月激情| 久久久亚洲午夜电影| 国产大陆a不卡| 中文字幕一区二区不卡| 91在线国产观看| 一区二区三区鲁丝不卡| 欧美日韩一区二区不卡| 蜜臂av日日欢夜夜爽一区| 欧美一区二区黄| 国产精品99久久久| 亚洲人成7777| 91 com成人网| 国产精品一级二级三级| 国产精品私人影院| 色婷婷av一区二区三区软件| 天堂精品中文字幕在线| 亚洲精品在线三区| 一本色道久久综合亚洲91| 亚洲国产日韩a在线播放性色| 欧美高清一级片在线| 加勒比av一区二区| 亚洲丝袜精品丝袜在线| 91精品在线观看入口| 黄页视频在线91| 1000精品久久久久久久久| 88在线观看91蜜桃国自产| 高清不卡一区二区| 五月婷婷欧美视频| 欧美韩国日本一区| 91精品国产aⅴ一区二区| 成人午夜电影久久影院| 亚洲伊人色欲综合网| 在线91免费看| 国产真实乱对白精彩久久| 欧美综合在线视频| 久久国产精品区| 亚洲精品亚洲人成人网在线播放| 国产欧美一区二区在线| 欧美综合天天夜夜久久| 高清免费成人av| 青青草国产精品97视觉盛宴| 亚洲欧美另类在线| 国产亚洲精品超碰| 欧美精品vⅰdeose4hd| 91亚洲男人天堂| 国产一区二区精品久久| 日韩福利电影在线| 亚洲网友自拍偷拍| 中文字幕综合网| 中文字幕欧美三区| 久久婷婷国产综合国色天香| 欧美吞精做爰啪啪高潮| 91在线观看视频| 国产成人aaa| 国产精品一区久久久久| 琪琪久久久久日韩精品| 国产三级一区二区| 欧美调教femdomvk| 国产精品亚洲专一区二区三区| 一区二区三区欧美| 首页国产丝袜综合| 日韩欧美一区电影| 欧美久久久一区| 欧美日韩的一区二区| 欧美色涩在线第一页| 在线播放视频一区| 中文字幕日韩一区| 天天做天天摸天天爽国产一区| 在线视频国内一区二区| 97精品国产97久久久久久久久久久久| 国产一区二区免费看| 国产精选一区二区三区| 久久99精品一区二区三区三区| 亚洲第一主播视频| 亚洲成av人片一区二区梦乃| 午夜精品久久久久久久| 午夜欧美电影在线观看| 欧美中文字幕一区二区三区亚洲| 91久久精品一区二区| 91天堂素人约啪| 91免费观看在线| 91国内精品野花午夜精品 | 国产拍欧美日韩视频二区| 久久久国产精品午夜一区ai换脸| 欧美精品一区二区精品网| 久久综合av免费| 日韩伦理av电影| 午夜电影网一区| 精品无码三级在线观看视频| 国产宾馆实践打屁股91| 色婷婷av一区二区三区大白胸| 欧美日韩亚洲综合在线 | 国产亚洲成av人在线观看导航 | 99r国产精品| 欧美日韩三级一区二区| 91精品国产综合久久久久久久久久| 日韩一级在线观看| 中文字幕欧美日本乱码一线二线| 自拍偷拍亚洲综合| 日韩电影在线一区二区| 成人永久看片免费视频天堂| 色老汉av一区二区三区| 日韩女优制服丝袜电影| 国产精品视频在线看| 亚洲国产精品嫩草影院| 国产伦精一区二区三区| 97精品视频在线观看自产线路二| 欧美日韩国产精品成人| 久久九九国产精品| 亚洲h在线观看| 成人动漫在线一区| 欧美一区二区性放荡片| 最好看的中文字幕久久| 另类成人小视频在线| 91小视频在线观看| 国产午夜精品美女毛片视频|