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

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

?? pictcp.h

?? 《嵌入式系統 Web 服務器:TCP/IP Lean》
?? H
字號:
/* TCP/IP functions for PIC Web server  Copyright (c) Iosoft Ltd 2000
**
** This software is only licensed for distribution with the book 'TCP/IP Lean',
** and may only be used for personal experimentation by the purchaser
** of that book, on condition that this copyright notice is retained.
** For commercial licensing, contact license@iosoft.co.uk
**
** This is experimental software; use it entirely at your own risk */

/* Revisions:
** v0.01 JPB 30/3/00
*/

BOOL get_tcp(void);
void put_tcp(void);
BOOL get_ping_req(void);
void put_ping_rep(void);
BOOL get_ip(void);
void put_ip(WORD len);
void inc_lword(LWORD &lw);
void add_lword(LWORD &lw, WORD val);

/* Get a TCP seqment, return 0 if error */
BOOL get_tcp(void)
{
    int hlen, n;
    BOOL ret=0;

    checkhi = checklo = 0;
    if (get_word(remport) && get_word(locport) &&   // Source & dest ports
        get_lword(rseq.l) && get_lword(rack.l) &&   // Seq & ack numbers
        get_byte(hlen) && get_byte(rflags) &&       // Header len & flags
        skip_word() && skip_lword())                // Window, csum, urgent ptr
    {
        iplen -= IPHDR_LEN;                         // Get TCP segment length
        check_byte(iplen>>8);                       // Check pseudoheader
        check_byte(iplen);
        check_lword(local.l);
        check_lword(remote.l);
        check_byte(0);
        check_byte(PCOL_TCP);
        rxout = (hlen>>2) + IPHDR_LEN;
        rpdlen = iplen - rxout + IPHDR_LEN;
        checkhi += rdcheckhi;
        checklo += rdchecklo;
        ret = (checkhi==0xff) && (checklo==0xff);
    }
    return(ret);
}

/* Put out a TCP segment. Checksum must be set to correct value for data */
void put_tcp(void)
{
    WORD len;

    checkflag = 0;                  // Ensure we're on an even byte
    put_word(locport);              // Local and remote ports
    put_word(remport);
    put_lword(rack.l);              // Seq & ack numbers
    put_lword(rseq.l);
    put_byte(TCPHDR_LEN*4);         // Header len (no options)
    put_byte(tflags);
    put_byte(0x0b);                 // Window size word
    put_byte(0xb8);
    check_lword(local.l);           // Add pseudoheader to checksum
    check_lword(remote.l);
    check_byte(0);
    check_byte(PCOL_TCP);
    len = tpdlen + TCPHDR_LEN;
    check_byte(len>>8);
    check_byte(len);
    checkflag = 0;
    put_byte(~checkhi);             // Send checksum
    put_byte(~checklo);
    put_nullw();                    // Urgent ptr
    if (!txi2c)                     // If data in RAM (i.e. not in ROM)..
        txin += tpdlen;             // ..update Tx data pointer
    tx_end();                       // Transmit the packet
}

/* Get an ICMP echo request message, return 0 if error */
BOOL get_ping_req(void)
{
    int i, n=0;
    BYTE b;
    BOOL ret=0;

    checkhi = checklo = 0;
    if (match_byte(8) && match_byte(0) && skip_word())
    {
        rpdlen = 0;
        while (skip_byte())
            rpdlen++;
        ret = (checkhi==0xff) && (checklo==0xff);
    }
    return(ret);
}

/* Put out an ICMP echo response message */
void put_ping_rep(void)
{
    int i;

    put_nullw();                    // Type and code
    checkhi = checklo = 0;          // Clear checksum
    checkflag = 0;                  // Reset flag in case odd data len
    check_bytes(&rxbuff[IPHDR_LEN+4], tpdlen);  // Calculate checksum of data
    put_byte(~checkhi);             // Checksum value
    put_byte(~checklo);
    rxout = IPHDR_LEN + 4;
    for (i=0; i<tpdlen; i++)        // Copy data
        put_byte(rxbuff[rxout++]);
    tx_end();
}

/* Send out an IP header, given data length */
void put_ip(WORD len)
{
    static BYTE id=0;

    checkhi = checklo = 0;          // Clear checksum
    checkflag = 0;
    tx_start();
    put_byte(0x45);                 // Version & hdr len */
    put_null();                     // Service
    len += IPHDR_LEN;
    put_byte(len>>8);               // Length word
    put_byte(len);
    put_null();                     // Ident word
    put_byte(++id);
    put_nullw();                    // Flags & fragment offset
    put_byte(100);                  // Time To Live
    put_byte(ipcol);                // Protocol
    check_lword(local.l);           // Include addresses in checksum
    check_lword(remote.l);
    put_byte(~checkhi);             // Checksum
    put_byte(~checklo);
    put_lword(local.l);             // Source & destination IP addrs
    put_lword(remote.l);
}

/* Increment a longword value */
void inc_lword(LWORD &lw)
{
    if (++lw.b[0] == 0)
    {
        if (++lw.b[1] == 0)
        {
            if (++lw.b[2] == 0)
                ++lw.b[3];
        }
    }
}

/* Add a 16-bit value to a longword */
void add_lword(LWORD &lw, WORD val)
{
    if ((lw.w[0] += val) < val)
        lw.w[1]++;
}

/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品伦一区二区三级视频| 蜜桃精品视频在线| 三级欧美在线一区| 色婷婷综合久久久久中文一区二区 | 精品一区二区在线看| 91丝袜高跟美女视频| 久久嫩草精品久久久精品| 午夜电影久久久| av资源站一区| 国产欧美日韩另类一区| 蜜臀va亚洲va欧美va天堂| 一本久久a久久精品亚洲| 国产午夜精品久久久久久久| 奇米影视一区二区三区小说| 欧美中文字幕一区二区三区 | 亚洲欧洲成人自拍| 国产精品99久久久久久久女警 | 在线免费一区三区| 国产精品成人免费| 国产精品自产自拍| 亚洲精品在线电影| 久久国产视频网| 欧美日韩国产高清一区二区三区| 亚洲美女电影在线| 99视频有精品| 中文字幕亚洲一区二区av在线 | 另类调教123区| 日韩一级二级三级| 奇米在线7777在线精品| 欧美一区二区三区人| 日韩成人免费电影| 欧美一区二区三区人| 日本视频免费一区| 日韩欧美一级二级三级久久久| 天堂一区二区在线免费观看| 欧美夫妻性生活| 麻豆免费看一区二区三区| 日韩欧美在线网站| 激情小说亚洲一区| 中文字幕精品一区二区三区精品| 国产·精品毛片| 中文字幕人成不卡一区| 欧美日韩一区二区三区视频| 亚洲va韩国va欧美va| 日韩一区二区精品在线观看| 久久99久久99| 国产精品五月天| 91麻豆国产福利在线观看| 亚洲激情男女视频| 欧美精品在线观看一区二区| 蜜臀91精品一区二区三区| 久久品道一品道久久精品| 国产91精品露脸国语对白| 亚洲视频一二三区| 这里只有精品免费| 国产美女精品在线| 亚洲精品日韩一| 91精品啪在线观看国产60岁| 国产综合久久久久久久久久久久| 亚洲国产精品av| 欧美日韩中字一区| 国产一区二区三区四| **欧美大码日韩| 日韩三级免费观看| 99精品久久免费看蜜臀剧情介绍| 亚洲午夜在线电影| 久久久久久一级片| 在线免费观看日韩欧美| 老司机精品视频一区二区三区| 亚洲国产精品成人综合色在线婷婷| 色婷婷狠狠综合| 激情欧美一区二区三区在线观看| 日韩伦理av电影| 精品国产成人系列| 欧美日韩中文国产| 成年人网站91| 国产自产2019最新不卡| 亚洲一区在线视频观看| 久久久久国产免费免费| 欧美丰满高潮xxxx喷水动漫| 成人激情黄色小说| 久久国产视频网| 午夜天堂影视香蕉久久| 中文字幕一区在线| 2021国产精品久久精品 | 成人深夜在线观看| 喷白浆一区二区| 亚洲一区在线观看免费| 欧美激情综合在线| 精品国产一区二区三区四区四 | 麻豆传媒一区二区三区| 亚洲色图在线看| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩精品欧美日韩精品| www.亚洲在线| 成人在线一区二区三区| 久久成人免费网站| 肉丝袜脚交视频一区二区| 一区二区在线观看免费视频播放| 久久丝袜美腿综合| 欧美va亚洲va| 欧美一区二区播放| 51久久夜色精品国产麻豆| 欧美综合欧美视频| 91麻豆国产自产在线观看| 成人app网站| 成人免费毛片aaaaa**| 国产一二精品视频| 韩国精品主播一区二区在线观看 | 国产很黄免费观看久久| 狠狠色丁香九九婷婷综合五月| 日本不卡高清视频| 日本视频一区二区| 毛片一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 日韩二区三区在线观看| 奇米精品一区二区三区在线观看一| 五月天亚洲精品| 视频在线在亚洲| 久久激五月天综合精品| 九九久久精品视频| 国产一区二区三区免费在线观看| 国产一区二区三区| 东方aⅴ免费观看久久av| 波多野洁衣一区| 欧美在线视频你懂得| 欧美性生活久久| 91精品婷婷国产综合久久性色| 日韩三级中文字幕| 国产日韩精品一区二区浪潮av| 国产偷v国产偷v亚洲高清| 国产精品素人一区二区| 一区二区三区在线不卡| 午夜精品影院在线观看| 精品午夜久久福利影院 | 亚洲第一会所有码转帖| 同产精品九九九| 国产一区二区在线电影| jiyouzz国产精品久久| 在线视频综合导航| 精品国偷自产国产一区| 国产精品久99| 亚洲aaa精品| 国产成人午夜精品影院观看视频| 99久久婷婷国产| 91精品国产综合久久久蜜臀图片| 久久众筹精品私拍模特| 亚洲男人都懂的| 久久国产精品99久久人人澡| 99免费精品视频| 日韩欧美的一区二区| 国产精品丝袜黑色高跟| 视频在线在亚洲| 91在线免费视频观看| 91精品国产综合久久香蕉麻豆| 国产日韩精品一区二区三区在线| 怡红院av一区二区三区| 国产一区二区三区在线观看免费 | 亚洲日本在线天堂| 麻豆精品新av中文字幕| 一本大道久久a久久综合婷婷| 欧美一三区三区四区免费在线看 | 石原莉奈在线亚洲三区| 波多野结衣的一区二区三区| 69av一区二区三区| 亚洲精品视频在线看| 国产综合久久久久影院| 欧美日本不卡视频| 亚洲欧美综合另类在线卡通| 国产在线日韩欧美| 欧美日韩精品一区二区三区四区 | 亚洲精品一区在线观看| 国产精品羞羞答答xxdd| 欧美老女人在线| 自拍偷拍国产精品| 国产一区二区在线免费观看| 欧美欧美午夜aⅴ在线观看| 中文字幕在线不卡一区| 国产精品一区二区久激情瑜伽 | 午夜精品久久久久久久蜜桃app| 成人听书哪个软件好| 久久久www成人免费无遮挡大片| 亚洲电影在线播放| 91国偷自产一区二区三区观看| 国产欧美日韩视频在线观看| 另类欧美日韩国产在线| 51精品久久久久久久蜜臀| 亚洲综合999| 91国偷自产一区二区三区成为亚洲经典 | 一本大道av伊人久久综合| 国产欧美va欧美不卡在线| 另类小说视频一区二区| 欧美一级在线视频| 蜜桃免费网站一区二区三区| 欧美日韩精品欧美日韩精品 | 中文字幕欧美一| 99精品视频在线免费观看| 国产精品久久久久影院亚瑟| 国产传媒欧美日韩成人| 中文字幕第一区|