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

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

?? tcp.h

?? 基于DM642的網絡傳輸
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
     Tcp.h
 */
#ifndef   _TCP_H__
#define   _TCP_H__

#include "lwdef.h"
#include "err.h"
#include "pbuf.h"
#include "netif.h"
#include "stats.h"
#include "../ip.h"
#include "ip_addr.h"

struct tcp_pcb;

/* Functions for interfacing with TCP: */

/* Lower layer interface to TCP: */
void       tcp_init    (void);     /* Must be called first to
                                            initialize TCP.         */
                                         
void       tcp_tmr     (void);     /* Must be called every
                                            TCP_TMR_INTERVAL
                                            ms. (Typically 250 ms). */
                                            
/* Application program's interface: */
struct tcp_pcb * tcp_new     (void);
struct tcp_pcb * tcp_alloc   (u8_t prio);

void       tcp_arg(struct tcp_pcb *pcb, void *arg);
void       tcp_accept(struct tcp_pcb *pcb,err_t (* accept)(void *arg, struct tcp_pcb *newpcb,err_t err));
void       tcp_recv(struct tcp_pcb *pcb,err_t (* recv)(void *arg, struct tcp_pcb *tpcb,struct pbuf *p, err_t err));
void       tcp_sent(struct tcp_pcb *pcb,err_t (* sent)(void *arg, struct tcp_pcb *tpcb,u16_t len));
void       tcp_poll(struct tcp_pcb *pcb,err_t (* poll)(void *arg, struct tcp_pcb *tpcb),u8_t interval);
void       tcp_err(struct tcp_pcb *pcb,void (* err)(void *arg, err_t err));

#define    tcp_mss(pcb)      ((pcb)->mss)
#define    tcp_sndbuf(pcb)   ((pcb)->snd_buf)

void       tcp_recved(struct tcp_pcb *pcb, u16_t len);
err_t      tcp_bind(struct tcp_pcb *pcb, Uint32 *ipaddr,u16_t port);
err_t      tcp_connect (struct tcp_pcb *pcb, Uint32 *ipaddr,u16_t port, err_t (* connected)(void *arg,struct tcp_pcb *tpcb,err_t err));
struct     tcp_pcb * tcp_listen  (struct tcp_pcb *pcb);
void       tcp_abort   (struct tcp_pcb *pcb);
err_t      tcp_close   (struct tcp_pcb *pcb);
err_t      tcp_write   (struct tcp_pcb *pcb, const void *dataptr, u16_t len,u8_t copy);
void       tcp_setprio (struct tcp_pcb *pcb, u8_t prio);

#define TCP_PRIO_MIN    1
#define TCP_PRIO_NORMAL 64
#define TCP_PRIO_MAX    127

/* It is also possible to call these two functions at the right
   intervals (instead of calling tcp_tmr()). */
void             tcp_slowtmr (void);
void             tcp_fasttmr (void);


/* Only used by IP to pass a TCP segment to TCP: */
void             tcp_input   (struct pbuf *p);//struct netif *inp);
/* Used within the TCP code only: */
err_t            tcp_output  (struct tcp_pcb *pcb);
void             tcp_rexmit  (struct tcp_pcb *pcb);



#define TCP_SEQ_LT(a,b)     ((s32_t)((a)-(b)) < 0)
#define TCP_SEQ_LEQ(a,b)    ((s32_t)((a)-(b)) <= 0)
#define TCP_SEQ_GT(a,b)     ((s32_t)((a)-(b)) > 0)
#define TCP_SEQ_GEQ(a,b)    ((s32_t)((a)-(b)) >= 0)

#define TCP_FIN 0x01U
#define TCP_SYN 0x02U
#define TCP_RST 0x04U
#define TCP_PSH 0x08U
#define TCP_ACK 0x10U
#define TCP_URG 0x20U
#define TCP_ECE 0x40U
#define TCP_CWR 0x80U

#define TCP_FLAGS 0x3fU

/* Length of the TCP header, excluding options. */
#define TCP_HLEN 20

#ifndef TCP_TMR_INTERVAL
#define TCP_TMR_INTERVAL       250  /* The TCP timer interval in
                                       milliseconds. */
#endif /* TCP_TMR_INTERVAL */

#ifndef TCP_FAST_INTERVAL
#define TCP_FAST_INTERVAL      TCP_TMR_INTERVAL /* the fine grained timeout in
                                       milliseconds */
#endif /* TCP_FAST_INTERVAL */

#ifndef TCP_SLOW_INTERVAL
#define TCP_SLOW_INTERVAL      (2*TCP_TMR_INTERVAL)  /* the coarse grained timeout in
                                       milliseconds */
#endif /* TCP_SLOW_INTERVAL */

#define TCP_FIN_WAIT_TIMEOUT 20000 /* milliseconds */
#define TCP_SYN_RCVD_TIMEOUT 20000 /* milliseconds */

#define TCP_OOSEQ_TIMEOUT        6 /* x RTO */

#define TCP_MSL 60000  /* The maximum segment lifetime in microseconds */

/*
 * User-settable options (used with setsockopt).
 */
#define	TCP_NODELAY	   0x01	   /* don't delay send to coalesce packets */
#define TCP_KEEPALIVE  0x02    /* send KEEPALIVE probes when idle for pcb->keepalive miliseconds */

/* Keepalive values */
#define  TCP_KEEPDEFAULT   7200000                       /* KEEPALIVE timer in miliseconds */
#define  TCP_KEEPINTVL     75000                         /* Time between KEEPALIVE probes in miliseconds */
#define  TCP_KEEPCNT       9                             /* Counter for KEEPALIVE probes */
#define  TCP_MAXIDLE       TCP_KEEPCNT * TCP_KEEPINTVL   /* Maximum KEEPALIVE probe time */

struct tcp_hdr 
{
  u16_t  src;
  u16_t  dest;
  u32_t  seqno;
  u32_t  ackno;
  u16_t  _hdrlen_rsvd_flags;
  u16_t  wnd;
  u16_t  chksum;
  u16_t  urgp;
};


#define TCPH_OFFSET(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 8)
#define TCPH_HDRLEN(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)
#define TCPH_FLAGS(phdr)  (ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS)

#define TCPH_OFFSET_SET(phdr, offset) (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr))
#define TCPH_HDRLEN_SET(phdr, len) (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr))
#define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons((ntohs((phdr)->_hdrlen_rsvd_flags) & ~TCP_FLAGS) | (flags))
#define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (flags))
#define TCPH_UNSET_FLAG(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) )

#define TCP_TCPLEN(seg) ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & TCP_FIN || \
          TCPH_FLAGS((seg)->tcphdr) & TCP_SYN)? 1: 0))

enum tcp_state 
{
     CLOSED      = 0,
     LISTEN      = 1,
     SYN_SENT    = 2,
     SYN_RCVD    = 3,
     ESTABLISHED = 4,
     FIN_WAIT_1  = 5,
     FIN_WAIT_2  = 6,
     CLOSE_WAIT  = 7,
     CLOSING     = 8,
     LAST_ACK    = 9,
     TIME_WAIT   = 10
};


/* the TCP protocol control block */
struct tcp_pcb 
{
	    /* Protocol specific PCB members */
	
	    struct tcp_pcb *next;   /* for the linked list */
	
	    enum   tcp_state state;   /* TCP state */
	
	    u8_t   prio;
	    void   *callback_arg;
	    Uint32 local_ip;
        u16_t  local_port;
        Uint32 dest_ip;
	    u16_t  remote_port;
	  
	    u8_t    flags;
	    #define TF_ACK_DELAY (u8_t)0x01U   /* Delayed ACK. */
	    #define TF_ACK_NOW   (u8_t)0x02U   /* Immediate ACK. */
	    #define TF_INFR      (u8_t)0x04U   /* In fast recovery. */
	    #define TF_RESET     (u8_t)0x08U   /* Connection was reset. */
	    #define TF_CLOSED    (u8_t)0x10U   /* Connection was sucessfully closed. */
	    #define TF_GOT_FIN   (u8_t)0x20U   /* Connection was closed by the remote end. */
	    #define TF_NODELAY   (u8_t)0x40U   /* Disable Nagle algorithm */
	
	    /* receiver varables */
	    u32_t rcv_nxt;   /* next seqno expected */
	    u16_t rcv_wnd;   /* receiver window */
	  
	    /* Timers */
	    u32_t tmr;
	    u8_t  polltmr, pollinterval;
	  
	    /* Retransmission timer. */
	    u16_t rtime;
	  
	    u16_t mss;   /* maximum segment size */
	  
	    /* RTT estimation variables. */
	    u16_t rttest; /* RTT estimate in 500ms ticks */
	    u32_t rtseq;  /* sequence number being timed */
	    s16_t sa, sv;
	
	    u16_t rto;    /* retransmission time-out */
	    u8_t  nrtx;    /* number of retransmissions */
	
	    /* fast retransmit/recovery */
	    u32_t lastack; /* Highest acknowledged seqno. */
	    u8_t  dupacks;
	  
	    /* congestion avoidance/control variables */
	    u16_t cwnd;  
	    u16_t ssthresh;
	
	    /* sender variables */
	    u32_t snd_nxt,       /* next seqno to be sent */
	    snd_max,             /* Highest seqno sent. */
	    snd_wnd,             /* sender window */
	    snd_wl1, snd_wl2,    /* Sequence and acknowledgement numbers of last
	                            window update. */
	    snd_lbb;             /* Sequence number of next byte to be buffered. */
	
	    u16_t acked;
	  
	    u16_t snd_buf;       /* Available buffer space for sending (in bytes). */
	    u8_t snd_queuelen;   /* Available buffer space for sending (in tcp_segs). */
	  
	    /* These are ordered by sequence number: */
	    struct tcp_seg *unsent;   /* Unsent (queued) segments. */
	    struct tcp_seg *unacked;  /* Sent but unacknowledged segments. */
	    #if TCP_QUEUE_OOSEQ  
	    struct tcp_seg *ooseq;    /* Received out of sequence segments. */
	    #endif /* TCP_QUEUE_OOSEQ */
	
//	    #if LWIP_CALLBACK_API
	    /* Function to be called when more send buffer space is available. */
	    err_t (* sent)(void *arg, struct tcp_pcb *pcb, u16_t space);
	    /* Function to be called when (in-sequence) data has arrived. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区免费观看| 国产成人鲁色资源国产91色综| 在线观看视频一区二区 | 欧美视频一区二区| 精品一区二区免费在线观看| 久久久亚洲精华液精华液精华液| 国产91综合一区在线观看| 成人免费在线观看入口| 欧美一区二区三区在线观看| 国内外成人在线视频| 国产精品大尺度| 91麻豆精品国产综合久久久久久| 黄色资源网久久资源365| 亚洲黄色小说网站| 日韩欧美国产一区在线观看| av在线不卡电影| 一本大道久久a久久综合婷婷| 日本亚洲电影天堂| 国产亚洲欧美日韩日本| 精品一区中文字幕| 国产盗摄视频一区二区三区| 成人激情午夜影院| 色猫猫国产区一区二在线视频| 91久久香蕉国产日韩欧美9色| 在线观看网站黄不卡| 91精品一区二区三区在线观看| 日本v片在线高清不卡在线观看| 91精品国产综合久久久久久| av毛片久久久久**hd| 日韩二区在线观看| 日韩av一区二区三区| 日韩电影在线观看一区| 日本亚洲三级在线| 日韩高清一区在线| 久久精品国产一区二区三区免费看| 亚洲成在线观看| 婷婷成人综合网| 男男成人高潮片免费网站| 日韩高清国产一区在线| 日韩不卡在线观看日韩不卡视频| 天天综合网天天综合色| 老司机午夜精品| 国产91在线|亚洲| 在线观看中文字幕不卡| 欧美一级国产精品| 久久久精品国产99久久精品芒果 | 男人的天堂久久精品| 国产福利一区二区三区视频在线 | 91福利精品第一导航| 欧美二区乱c少妇| 久久香蕉国产线看观看99| 中文字幕日韩欧美一区二区三区| 亚洲一区二区综合| 精品中文av资源站在线观看| www.欧美日韩| 欧美成人video| 亚洲午夜三级在线| 成人免费高清视频在线观看| 99精品在线观看视频| 欧美成人bangbros| 亚洲18色成人| 91福利国产精品| 中文在线资源观看网站视频免费不卡| 亚洲制服丝袜一区| 国产成人三级在线观看| 欧美mv和日韩mv国产网站| 亚洲黄色av一区| av成人免费在线| 欧美激情一区不卡| 极品瑜伽女神91| 欧美va亚洲va| 精品一区二区三区的国产在线播放| 欧美亚洲日本一区| 亚洲成av人片一区二区| 日本高清不卡视频| 亚洲欧美aⅴ...| 欧洲视频一区二区| 激情五月婷婷综合| 欧美色涩在线第一页| 久久久久久久久久久黄色| 麻豆精品一区二区| 日韩精品中文字幕一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 在线观看一区二区视频| 亚洲一区二区在线视频| 欧美高清dvd| 国产馆精品极品| 亚洲一区在线观看网站| 欧美一区二区三区精品| 国产成人亚洲综合色影视| 一区二区中文字幕在线| 在线视频欧美精品| 久久精品国产色蜜蜜麻豆| 欧美国产日本视频| 欧美日韩情趣电影| 国产成人午夜片在线观看高清观看 | 国产美女av一区二区三区| 欧美经典一区二区| 欧美高清dvd| 91老师国产黑色丝袜在线| 性久久久久久久久| 国产精品护士白丝一区av| 67194成人在线观看| 9i看片成人免费高清| 国产在线一区观看| 亚洲成人久久影院| 一区二区在线电影| 国产精品国产三级国产| 日韩一区二区免费在线电影| 在线观看视频一区| 99re这里只有精品6| 国产美女在线精品| 国产福利一区在线| 国内成人免费视频| 裸体一区二区三区| 奇米亚洲午夜久久精品| 亚洲成人黄色影院| 日韩成人一级片| 蜜桃久久精品一区二区| 毛片不卡一区二区| 久久精品噜噜噜成人av农村| 午夜精品久久久久久不卡8050| 亚洲国产一区视频| 免费日本视频一区| 国产福利精品一区二区| 国产成人免费av在线| 94-欧美-setu| 91高清视频免费看| 91麻豆精品91久久久久久清纯| 欧美成人一区二区三区片免费| 久久久亚洲精品一区二区三区 | 激情久久久久久久久久久久久久久久| 国模套图日韩精品一区二区| 成年人国产精品| 欧美一级日韩一级| 中文字幕在线免费不卡| 午夜伦理一区二区| 国产河南妇女毛片精品久久久| 99精品国产99久久久久久白柏 | 国产午夜精品美女毛片视频| 制服丝袜中文字幕亚洲| 国产九色精品成人porny| 麻豆视频观看网址久久| 精品中文字幕一区二区小辣椒| 欧美日韩国产一二三| 成人app在线| 91高清视频在线| 91麻豆精品一区二区三区| 色欧美88888久久久久久影院| 欧美亚洲禁片免费| 欧美成人精品3d动漫h| 成人国产亚洲欧美成人综合网 | 国产伦精品一区二区三区免费| 中文字幕亚洲电影| 欧美性色欧美a在线播放| 国产成+人+日韩+欧美+亚洲| 亚洲综合成人在线视频| 在线视频一区二区免费| 欧美日韩精品综合在线| 欧美日韩精品久久久| 欧美日韩中字一区| 欧美疯狂性受xxxxx喷水图片| 91精品欧美综合在线观看最新| 日韩精品一区二区三区视频在线观看 | 欧美在线一区二区| 99久久久久久99| 欧美女孩性生活视频| 亚洲天堂2014| 成人妖精视频yjsp地址| 精品国产91九色蝌蚪| 免费久久精品视频| 91精品麻豆日日躁夜夜躁| 亚洲福利视频一区| 欧美精品三级在线观看| 亚洲在线视频网站| 欧美亚洲综合色| 激情图片小说一区| 亚洲成年人影院| 精品国产一区二区三区忘忧草| 国产精品主播直播| 精品99一区二区| 色综合久久久久综合体| 蜜臀国产一区二区三区在线播放| 亚洲人成亚洲人成在线观看图片| 欧美三级在线视频| 国产成人夜色高潮福利影视| 亚洲一区在线看| 久久久av毛片精品| 欧美日韩在线电影| 成人污视频在线观看| 亚洲男同性视频| 日韩一级黄色大片| 欧美三级日韩三级| 一本到高清视频免费精品| 国产麻豆精品视频| 蜜桃av一区二区在线观看| 亚洲成人高清在线| 亚洲成人综合视频| 日韩福利电影在线| 美女视频第一区二区三区免费观看网站|