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

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

?? tcpport.c

?? dos下開發TCP網絡的庫文件部分
?? C
?? 第 1 頁 / 共 2 頁
字號:

int tn_sttyp(void)
{                            /* Send telnet terminal type. */
    char *ttn;
    int ttl;                 /* Name & length of terminal type. */

    ttn = termtype;		/* we already got this from environment */
    if ((*ttn == 0) || ((ttl = strlen(ttn)) >= TSBUFSIZ)) {
        ttn = "UNKNOWN";
        ttl = 7;
    }
    ttn = strcpy(&sb[1],ttn);		/* Copy to subnegotiation buffer */
    ttn = strchr( strupr(ttn), 0 );

    *sb    = 0;				/* 'is'... */
    *ttn++ = IAC;
    *ttn   = SE;

    if (send_iac(SB,TELOPT_TTYPE))	/* Send: Terminal Type */
	return(-1);

    sock_fastwrite( s, sb, ttl+3 );
    return(0);
}


/*
 * ttinc   - destructively read a character from our buffer
 *	   - if fast = 0, never times out
 */
int ttinc( int fast )
{
    char ch;

    /* organized to reduce number of set_timeouts when data waiting */
    while ( rec_in == rec_out ) {
        if ( !tcp_tick( s )) {
	    sock_status = 0;
            s = NULL;
            return( -1 );
        }

        /* do processing */
	kbhit();
        do_transmission();
        do_reception();

        if (fast) break;
    }
    ch = receive_buffer[ rec_out ];
    if ( ++rec_out >= RECEIVE_BUF_SIZE ) rec_out = 0;
    return( (word)(ch) & 0x00ff );
}

void interrupt ourhandler(unsigned bp /* , unsigned di, unsigned si, unsigned ds,
   unsigned es, unsigned dx, unsigned cx, unsigned bx, unsigned ax,
   unsigned ip, unsigned cs, unsigned flgs */)  /* trailing parms not used */
{
    stkptr = (struct stk far *)&bp;

    oldss = _SS;
    oldsp = _SP;
    _SS = FP_SEG(stack);
    _SP = FP_OFF(&stack[ sizeof( stack ) - 2 ]);
    stkptr->ax = sytek_int( stkptr->ax /*, stkptr->dx*/ );
    _SS = oldss;
    _SP = oldsp;
}

void stuff_char( char ch )
{
    transmit_buffer[ tran_in ] = ch;
    tran_in = (tran_in + 1) % TRANSMIT_BUF_SIZE;
}

unsigned  sytek_int( unsigned ax /*, unsigned dx */ )
{
    unsigned char ah;
    unsigned char ch;
/*    int sent; */
    unsigned int status;


    if ( !s ) {
        return( 0x1000 );   /* timeout */
    }

    if (chk_timeout( recvtimeout )) {
        do_reception();
        recvtimeout = set_ttimeout( 2 );    /* 10 ms */
    }

    /* disable(); receive_clock = RECEIVE_TICKS; enable(); } */

    ah = ax >> 8;

    if( ah == 1 ) {			/* send char in AL */
	ch = ax & 0x0FF;
/*	if (ch == '\r') ch = '\n'; */

	if( ((tran_in + 1) % TRANSMIT_BUF_SIZE) == tran_out ) {
	    outs( "?tr_buf_full?" );
	    status = 0x08000 | ch;
	} else {
	    if ((ch == '\r') && echo ) stuff_char( '\n' );
	    else stuff_char( ch );

	    status = 0x06000 | ch;

	    /* local echoing if requested */
	    if ( echo ) {
		receive_buffer[ rec_in ] = ch;
		rec_in = (rec_in + 1) % RECEIVE_BUF_SIZE;
		if (ch == '\r') {
		    receive_buffer[ rec_in ] = '\n';
		    rec_in = (rec_in + 1) % RECEIVE_BUF_SIZE;
		}
	    }
	}
    } else if( ah == 2 ) {		/* receive char into AL */
        do {
            ch = 0;
            if( rec_in == rec_out )
	        status = 0x08000;
            else {
		status = ch = (ttinc( 0 ) & 0xff);
                if ( ch == IAC ) {
                    /* process this stuff */
		    ch = ttinc( 0 );
                    if ( ch == IAC ) ch = 0; /* let it pass through */
		    else tn_doop(ch);
                }
            }
	} while ( ch == IAC );
	/* status = 0x0800; timeout */
    }
    else if( ah == 3 ) {		/* get status */
	if( rec_in == rec_out )
	    status = 0x06010;
	else {
	    status = 0x06110;
	}

    } else if( ah == 0 ) {		/* init port */
	status = 0x06010;
    } else {
	status = ax;
	outs( "?command_err?" );
    }

    /* here we do the io */
    if( transmit_clock <= 0 ) {
        do_transmission();
        disable();
        transmit_clock = TRANSMIT_TICKS;
        enable();
    }

    return( status );
}

void sytek_tick( void )
{
    if( transmit_clock ) transmit_clock--;
    if( receive_clock ) receive_clock--;
}

void interrupt tcpport_tick( void )
{
    (*old8)();
    if( transmit_clock ) transmit_clock--;
    if( receive_clock ) receive_clock--;
}

void do_reception(void)
{
    unsigned int maxtransfer;
#ifdef OLD
    unsigned int newtransfer;
    int status;
    unsigned int chars_avail, i;
#endif

    sock_tick( s, &status );

#ifdef OLD
    if ( sock_dataready( s )) {
	if (rec_out > rec_in ) {
	    /* we can fill intermediate portion of buffer */
	    maxtransfer = rec_out - rec_in;
	} else {
	    /* we fill end of buffer and leave start for next attempt */
	    maxtransfer = RECEIVE_BUF_SIZE - rec_in;
	}
	if (maxtransfer) {
	    rec_in += sock_fastread( s, &receive_buffer[ rec_in ], maxtransfer );
	    if ( rec_in >= RECEIVE_BUF_SIZE )
		rec_in -= RECEIVE_BUF_SIZE;
	}
    }
#else
    maxtransfer = RECEIVE_BUF_SIZE - rec_in;
    if (rec_out > rec_in) maxtransfer = rec_out - rec_in;
    maxtransfer = sock_recv( s, &receive_buffer[ rec_in ], maxtransfer );
    if (maxtransfer)
	rec_in = (rec_in + maxtransfer) % RECEIVE_BUF_SIZE ;
#endif OLD
/*    return( 0 ); */
    return;

sock_err:
    switch (status) {
	case 1 : outs("\n\r\7[??Host closed connection??]\n\r");
		 break;
	case-1 : outs("\n\r\7[??Host reset connection??]\n\r");
		 break;
    }
    s = NULL;
    sock_status = 0;
}

int do_transmission(void)
{
    unsigned int send_chars;
    int status;

    if( tran_in == tran_out ) return(0);

    if( tran_in > tran_out )
	send_chars = tran_in - tran_out;
    else
	send_chars = TRANSMIT_BUF_SIZE - tran_out;

    if( send_chars > TRANSMIT_MAX ) send_chars = TRANSMIT_MAX;

    sock_flushnext( s );
    send_chars = sock_fastwrite( s, &transmit_buffer[ tran_out], send_chars );

    /* this only changes it by the number of bytes we have emptied out */
    tran_out = (tran_out + send_chars) % TRANSMIT_BUF_SIZE;

    return(0);
}


int main( int argc, char *argv[] )
{
/*    int i; */
    int status = 0;
    char *temp;

    if (argc < 4 ) {
	outs("SERTN host port program options\n\r");
	exit(1);
    }

    sock_init();

    if (!( host = resolve( argv[1] ))) {
	outs( "Bad Host\n\r" );
	exit(1);
    }

    if ( (temp = getenv( TCPTERM )) != NULL ) {
	/* deal with strncpy limitation */
	movmem( temp, termtype, sizeof( termtype ));
	termtype[ sizeof(termtype) -1 ] = 0;
	outs("TERMINAL EMULATION :");
	outs( termtype );
	outs("\n\r");
    } else
	strcpy(termtype, "UNKNOWN");


    s = &socketdata;
    if ( host == my_ip_addr ) {
	outs("Incomming sessions not supported...\n\r");
	sock_wait_established( s, 0, NULL, &status );
	exit( -3 );
    }

    if (! tcp_open( s, 0, host, atoi( argv[2]), NULL )) {
#ifndef OLD
	sock_recv_init( s, bigbuf, sizeof( bigbuf ), 0);
#endif OLD
	outs( "Unable to open\n\r");
	exit(1);
    }

    sock_wait_established( s, sock_delay, NULL, &status );

    sock_mode( s, TCP_MODE_NAGLE );

    sock_status = 1;		/* allow interrupts */

    /* move vectors */
    moved_vectors = 1;
    old8 =  getvect( 0x08 );
    old14 =  getvect( 0x014 );
/*
    setvect( 0x08, (void interrupt (*)())serial_t );
*/
    setvect( 0x08, tcpport_tick );
    setvect( 0x014,ourhandler);  /* was serial_2 */
    recvtimeout = set_ttimeout( 1 );

    outs("Running...");
    outs( argv[3] );
    outs( "\n\r");
    system( argv[ argc-1 ] );

    outs("Done, now closing session\n\r");

    setvect( 0x014, old14 );
    setvect( 0x08, old8 );
    moved_vectors = 0;

    if ( s ) {
	sock_close( s );
	sock_wait_closed( s, sock_delay, NULL, &status );
    }

sock_err:
    switch (status) {
    case 1 : outs("Done.\n\r");
	     break;
    case -1: outs("Remote host reset connection.");
	     break;
    }
    if (moved_vectors) {
	setvect( 0x014, old14 );
	setvect( 0x08, old8 );
    }

    exit( (status)? 2 : 0);
    return (0);   /* not reached */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产一区二区| 亚洲欧美日韩精品久久久久| 国产欧美日韩精品在线| 亚洲在线视频网站| 粉嫩绯色av一区二区在线观看| 精品婷婷伊人一区三区三| 久久精品欧美一区二区三区不卡| 亚洲一区二区三区视频在线播放| 成人毛片在线观看| 久久久久久一级片| 久久99最新地址| 欧美日韩视频第一区| 亚洲欧美电影院| 99精品欧美一区二区蜜桃免费| 精品久久久久久综合日本欧美| 天堂在线一区二区| 欧洲中文字幕精品| 亚洲丝袜精品丝袜在线| 国产乱码精品一区二区三区五月婷| 欧美精品成人一区二区三区四区| 亚洲人成在线观看一区二区| 成人免费三级在线| 国产午夜精品一区二区三区嫩草 | 国产视频一区不卡| 免费成人在线观看视频| 欧美一级一区二区| 日韩电影在线免费观看| 91麻豆精品国产91久久久使用方法| 亚洲精品国产无天堂网2021 | 欧美经典一区二区三区| 国产一区91精品张津瑜| 欧美精品一区二区蜜臀亚洲| 麻豆91在线播放| 欧美xxxx在线观看| 黑人精品欧美一区二区蜜桃| 欧美精品一区二区三区久久久| 开心九九激情九九欧美日韩精美视频电影| 欧美日韩小视频| 日本美女一区二区| 日韩精品一区二区三区蜜臀| 国产一区视频网站| 国产精品全国免费观看高清 | 国产精品区一区二区三| 成人av资源下载| 亚洲欧洲日韩在线| 欧美午夜宅男影院| 日韩电影网1区2区| 精品国产乱码久久久久久夜甘婷婷| 狠狠久久亚洲欧美| 中文字幕一区二区三区四区 | 欧美一级片在线| 韩国欧美一区二区| 国产精品美女一区二区| 欧美视频日韩视频在线观看| 美女精品自拍一二三四| 久久久精品国产免费观看同学| 丁香六月久久综合狠狠色| 亚洲欧美一区二区三区极速播放| 欧美三电影在线| 国产一区视频在线看| 17c精品麻豆一区二区免费| 欧美少妇bbb| 国产麻豆视频精品| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品久久久久7777按摩| 91国模大尺度私拍在线视频| 久久99精品国产麻豆不卡| 国产精品传媒在线| 欧美一区二区三区四区高清| 岛国精品在线观看| 三级欧美韩日大片在线看| 亚洲国产成人自拍| 欧美日产国产精品| 99久久精品免费| 欧美aaaaaa午夜精品| 亚洲欧美影音先锋| 精品第一国产综合精品aⅴ| 91老师片黄在线观看| 捆绑调教美女网站视频一区| 夜夜亚洲天天久久| 国产午夜精品久久久久久久| 欧美日韩电影一区| 一本久久精品一区二区| 国产中文字幕精品| 日本欧洲一区二区| 亚洲美女淫视频| 国产精品毛片大码女人| 欧美tickling网站挠脚心| 欧美日韩一区二区在线视频| 高清成人在线观看| 九九热在线视频观看这里只有精品| 一区二区三区高清在线| 国产精品理论在线观看| 久久综合一区二区| 91麻豆精品国产| 欧美日韩激情一区| 色婷婷综合久久久久中文一区二区| 国产一区二区不卡在线| 久久99精品国产91久久来源| 五月激情综合网| 亚洲自拍偷拍麻豆| 亚洲精品综合在线| 1000部国产精品成人观看| 国产情人综合久久777777| 欧美大片国产精品| 欧美一二三区精品| 欧美草草影院在线视频| 欧美一级日韩不卡播放免费| 欧美丰满美乳xxx高潮www| 欧美日本国产视频| 欧美久久一区二区| 欧美高清视频一二三区| 欧美日韩精品三区| 制服视频三区第一页精品| 欧美精品在线观看一区二区| 91福利国产成人精品照片| 欧美日韩国产123区| 91精品在线观看入口| 91麻豆精品国产| 日韩三级精品电影久久久| 日韩欧美国产小视频| 欧美成人精品3d动漫h| 久久久久久久久久电影| 国产亚洲欧美中文| 日本一区二区三级电影在线观看| 国产日韩欧美精品在线| 亚洲国产精品ⅴa在线观看| 亚洲欧美一区二区三区极速播放 | 日本中文字幕一区| 精品制服美女丁香| 国产高清不卡一区| 97成人超碰视| 欧美日韩精品一区视频| 日韩一区二区中文字幕| 欧美激情中文字幕| 亚洲免费看黄网站| 蜜桃一区二区三区在线| 国产精品一区在线观看乱码| 99久久伊人精品| 欧美日韩一区三区| 久久综合色天天久久综合图片| 中文字幕 久热精品 视频在线| 亚洲人成网站在线| 麻豆成人久久精品二区三区红 | 欧美午夜精品久久久久久超碰| 4438x成人网最大色成网站| 精品久久久久久久久久久久久久久 | 日韩在线播放一区二区| 精品一二三四区| 99久免费精品视频在线观看| 91精品国产91综合久久蜜臀| 国产日韩精品久久久| 亚洲一区二区成人在线观看| 蜜臀av性久久久久蜜臀aⅴ| 99视频超级精品| 精品国产一二三区| 亚洲自拍偷拍综合| 国产91丝袜在线播放0| 欧美日韩精品欧美日韩精品一| 久久久www成人免费毛片麻豆| 夜夜亚洲天天久久| 国产福利一区在线| 在线不卡一区二区| 国产精品久久国产精麻豆99网站| 亚洲高清三级视频| av资源网一区| 久久久欧美精品sm网站| 日韩综合小视频| 91视频www| 久久久91精品国产一区二区精品 | 91久久奴性调教| 久久精品日韩一区二区三区| 亚洲福利视频一区| 99久久国产综合色|国产精品| 精品99999| 免费在线观看一区| 91黄色激情网站| 日韩一区欧美小说| 国产盗摄精品一区二区三区在线| 777久久久精品| 亚洲一区二区高清| 色视频欧美一区二区三区| 国产精品美日韩| 成人自拍视频在线观看| 精品成人一区二区三区| 美女在线一区二区| 日韩一级视频免费观看在线| 亚洲成va人在线观看| 色8久久人人97超碰香蕉987| 国产精品美女久久久久av爽李琼| 国产精品88av| 久久久久久久性| 国产成人av一区二区三区在线| 精品国产一区二区三区忘忧草| 毛片不卡一区二区| 久久综合中文字幕| 国产成人欧美日韩在线电影| 国产日韩欧美不卡| 波多野结衣亚洲| 亚洲美女在线国产|