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

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

?? uip.lst

?? 運行環境是keil。這是一個實現嵌入式TCP/IP的程序
?? LST
?? 第 1 頁 / 共 4 頁
字號:
 756   2      
 757   2          If the incoming packet is a FIN, we should close the connection on
 758   2          this side as well, and we send out a FIN and enter the LAST_ACK
 759   2          state. We require that the FIN will have to acknowledge all
 760   2          outstanding data, otherwise we drop it. */
 761   2      
 762   2          if(BUF->flags & TCP_FIN) {
 763   3            uip_add_rcv_nxt(1 + uip_len);
 764   3            uip_flags = UIP_CLOSE;
 765   3            uip_len = 0;
 766   3            UIP_APPCALL();
 767   3            uip_add_ack_nxt(1);
 768   3            uip_conn->tcpstateflags = LAST_ACK | UIP_OUTSTANDING;
 769   3            uip_conn->nrtx = 0;
 770   3          tcp_send_finack:
 771   3            BUF->flags = TCP_FIN | TCP_ACK;      
 772   3            goto tcp_send_nodata;
 773   3          }
 774   2      
 775   2          
 776   2          /* If uip_len > 0 we have TCP data in the packet, and we flag this
 777   2             by setting the UIP_NEWDATA flag and update the sequence number
 778   2             we acknowledge. If the application has stopped the dataflow
 779   2             using uip_stop(), we must not accept any data packets from the
 780   2             remote host. */
 781   2          if(uip_len > 0 && !(uip_conn->tcpstateflags & UIP_STOPPED)) {
 782   3            uip_flags |= UIP_NEWDATA;
 783   3            uip_add_rcv_nxt(uip_len);
 784   3          }
 785   2          
 786   2      
 787   2          /* If this packet constitutes an ACK for outstanding data (flagged
 788   2             by the UIP_ACKDATA flag, we should call the application since it
 789   2             might want to send more data. If the incoming packet had data
 790   2             from the peer (as flagged by the UIP_NEWDATA flag), the
 791   2             application must also be notified.
 792   2      
 793   2             When the application is called, the global variable uip_len
 794   2             contains the length of the incoming data. The application can
 795   2             access the incoming data through the global pointer
 796   2             uip_appdata, which usually points 40 bytes into the uip_buf
 797   2             array.
 798   2      
C51 COMPILER V7.06   UIP                                                                   04/05/2006 12:13:01 PAGE 14  

 799   2             If the application wishes to send any data, this data should be
 800   2             put into the uip_appdata and the length of the data should be
 801   2             put into uip_len. If the application don't have any data to
 802   2             send, uip_len must be set to 0. */
 803   2          if(uip_flags & (UIP_NEWDATA | UIP_ACKDATA)) {
 804   3            UIP_APPCALL();
 805   3      
 806   3          appsend:
 807   3            if(uip_flags & UIP_ABORT) {
 808   4              uip_conn->tcpstateflags = CLOSED;
 809   4              BUF->flags = TCP_RST | TCP_ACK;
 810   4              goto tcp_send_nodata;
 811   4            }
 812   3      
 813   3            if(uip_flags & UIP_CLOSE) {
 814   4              uip_add_ack_nxt(1);
 815   4              uip_conn->tcpstateflags = FIN_WAIT_1 | UIP_OUTSTANDING;
 816   4              uip_conn->nrtx = 0;
 817   4              BUF->flags = TCP_FIN | TCP_ACK;
 818   4              goto tcp_send_nodata;   
 819   4            }
 820   3      
 821   3            /* If uip_len > 0, the application has data to be sent, in which
 822   3               case we set the UIP_OUTSTANDING flag in the connection
 823   3               structure. But we cannot send data if the application already
 824   3               has outstanding data. */
 825   3            if(uip_len > 0 &&
 826   3               !(uip_conn->tcpstateflags & UIP_OUTSTANDING)) {
 827   4              uip_conn->tcpstateflags |= UIP_OUTSTANDING;
 828   4              uip_conn->nrtx = 0;
 829   4              uip_add_ack_nxt(uip_len);
 830   4            } else {
 831   4              uip_len = 0;
 832   4            }
 833   3          apprexmit:
 834   3            /* If the application has data to be sent, or if the incoming
 835   3               packet had new data in it, we must send out a packet. */
 836   3            if(uip_len > 0 || (uip_flags & UIP_NEWDATA)) {
 837   4              /* Add the length of the IP and TCP headers. */
 838   4              uip_len = uip_len + 40;
 839   4              /* We always set the ACK flag in response packets. */
 840   4              BUF->flags = TCP_ACK;
 841   4              /* Send the packet. */
 842   4              goto tcp_send_noopts;
 843   4            }
 844   3          }
 845   2          goto drop;
 846   2        case LAST_ACK:
 847   2          /* We can close this connection if the peer has acknowledged our
 848   2             FIN. This is indicated by the UIP_ACKDATA flag. */     
 849   2          if(uip_flags & UIP_ACKDATA) {
 850   3            uip_conn->tcpstateflags = CLOSED;
 851   3          }
 852   2          break;
 853   2          
 854   2        case FIN_WAIT_1:
 855   2          /* The application has closed the connection, but the remote host
 856   2             hasn't closed its end yet. Thus we do nothing but wait for a
 857   2             FIN from the other side. */
 858   2          if(uip_len > 0) {
 859   3            uip_add_rcv_nxt(uip_len);
 860   3          }
C51 COMPILER V7.06   UIP                                                                   04/05/2006 12:13:01 PAGE 15  

 861   2          if(BUF->flags & TCP_FIN) {
 862   3            if(uip_flags & UIP_ACKDATA) {
 863   4              uip_conn->tcpstateflags = TIME_WAIT;
 864   4              uip_conn->timer = 0;
 865   4            } else {
 866   4              uip_conn->tcpstateflags = CLOSING | UIP_OUTSTANDING;
 867   4            }
 868   3            uip_add_rcv_nxt(1);
 869   3            goto tcp_send_ack;
 870   3          } else if(uip_flags & UIP_ACKDATA) {
 871   3            uip_conn->tcpstateflags = FIN_WAIT_2;
 872   3            goto drop;
 873   3          }
 874   2          if(uip_len > 0) {
 875   3            goto tcp_send_ack;
 876   3          }
 877   2          goto drop;
 878   2            
 879   2        case FIN_WAIT_2:
 880   2          if(uip_len > 0) {
 881   3            uip_add_rcv_nxt(uip_len);
 882   3          }
 883   2          if(BUF->flags & TCP_FIN) {
 884   3            uip_conn->tcpstateflags = TIME_WAIT;
 885   3            uip_conn->timer = 0;
 886   3            uip_add_rcv_nxt(1);
 887   3            goto tcp_send_ack;
 888   3          }
 889   2          if(uip_len > 0) {
 890   3            goto tcp_send_ack;
 891   3          }
 892   2          goto drop;
 893   2      
 894   2        case TIME_WAIT:
 895   2          goto tcp_send_ack;
 896   2          
 897   2        case CLOSING:
 898   2          if(uip_flags & UIP_ACKDATA) {
 899   3            uip_conn->tcpstateflags = TIME_WAIT;
 900   3            uip_conn->timer = 0;
 901   3          }
 902   2        }  
 903   1        goto drop;
 904   1        
 905   1      
 906   1        /* We jump here when we are ready to send the packet, and just want
 907   1           to set the appropriate TCP sequence numbers in the TCP header. */
 908   1       tcp_send_ack:
 909   1        BUF->flags = TCP_ACK;
 910   1       tcp_send_nodata:
 911   1        uip_len = 40;
 912   1       tcp_send_noopts:
 913   1        BUF->tcpoffset = 5 << 4;
 914   1       tcp_send:
 915   1        /* We're done with the input processing. We are now ready to send a
 916   1           reply. Our job is to fill in all the fields of the TCP and IP
 917   1           headers before calculating the checksum and finally send the
 918   1           packet. */    
 919   1        BUF->ackno[0] = uip_conn->rcv_nxt[0];
 920   1        BUF->ackno[1] = uip_conn->rcv_nxt[1];
 921   1        BUF->ackno[2] = uip_conn->rcv_nxt[2];
 922   1        BUF->ackno[3] = uip_conn->rcv_nxt[3];
C51 COMPILER V7.06   UIP                                                                   04/05/2006 12:13:01 PAGE 16  

 923   1        
 924   1        BUF->seqno[0] = uip_conn->snd_nxt[0];
 925   1        BUF->seqno[1] = uip_conn->snd_nxt[1];
 926   1        BUF->seqno[2] = uip_conn->snd_nxt[2];
 927   1        BUF->seqno[3] = uip_conn->snd_nxt[3];
 928   1      
 929   1        BUF->srcport  = uip_conn->lport;
 930   1        BUF->destport = uip_conn->rport;
 931   1      
 932   1      #if BYTE_ORDER == BIG_ENDIAN  
 933   1        BUF->srcipaddr[0] = ((UIP_IPADDR0 << 8) | UIP_IPADDR1);
 934   1        BUF->srcipaddr[1] = ((UIP_IPADDR2 << 8) | UIP_IPADDR3);
 935   1      #else
                BUF->srcipaddr[0] = ((UIP_IPADDR1 << 8) | UIP_IPADDR0);
                BUF->srcipaddr[1] = ((UIP_IPADDR3 << 8) | UIP_IPADDR2);
              #endif /* BYTE_ORDER == BIG_ENDIAN */
 939   1      
 940   1        BUF->destipaddr[0] = uip_conn->ripaddr[0];
 941   1        BUF->destipaddr[1] = uip_conn->ripaddr[1];
 942   1      
 943   1        if(uip_conn->tcpstateflags & UIP_STOPPED) {
 944   2          /* If the connection has issued uip_stop(), we advertise a zero
 945   2             window so that the remote host will stop sending data. */
 946   2          BUF->wnd[0] = BUF->wnd[1] = 0;
 947   2        } else {
 948   2      #if (UIP_TCP_MSS) > 255
                  BUF->wnd[0] = (uip_conn->mss >> 8);
              #else
 951   2          BUF->wnd[0] = 0;
 952   2      #endif /* UIP_MSS */
 953   2          BUF->wnd[1] = (uip_conn->mss & 0xff); 
 954   2        }
 955   1        
 956   1       tcp_send_noconn:
 957   1      
 958   1        BUF->vhl = 0x45;
 959   1        BUF->tos = 0;
 960   1        BUF->ipoffset[0] = BUF->ipoffset[1] = 0;
 961   1        BUF->ttl  = UIP_TTL;
 962   1        BUF->proto = IP_PROTO_TCP;
 963   1      
 964   1      #if UIP_BUFSIZE > 255
                BUF->len[0] = (uip_len >> 8);
                BUF->len[1] = (uip_len & 0xff);
              #else
 968   1        BUF->len[0] = 0;
 969   1        BUF->len[1] = uip_len;
 970   1      #endif /* UIP_BUFSIZE > 255 */
 971   1        
 972   1        ++ipid;
 973   1        BUF->ipid[0] = ipid >> 8;
 974   1        BUF->ipid[1] = ipid & 0xff;
 975   1        
 976   1        /* Calculate IP and TCP checksums. */
 977   1        BUF->ipchksum = 0;
 978   1        BUF->ipchksum = ~(uip_ipchksum());
 979   1        BUF->tcpchksum = 0;
 980   1        BUF->tcpchksum = ~(uip_tcpchksum());
 981   1      
 982   1        UIP_STAT(++uip_stat.tcp.sent);
 983   1       send:
 984   1        UIP_STAT(++uip_stat.ip.sent);
C51 COMPILER V7.06   UIP                                                                   04/05/2006 12:13:01 PAGE 17  

 985   1        /* The data that should be sent is not present in the uip_buf, and
 986   1           the length of the data is in the variable uip_len. It is not our
 987   1           responsibility to do the actual sending of the data however. That
 988   1           is taken care of by the wrapper code, and only if uip_len > 0. */
 989   1        return;
 990   1       drop:
 991   1        uip_len = 0;
 992   1        return;
 993   1      }
 994          /*-----------------------------------------------------------------------------------*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3655    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    594    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线视频精品一区| 久久女同性恋中文字幕| 久久中文字幕电影| 亚洲人成网站在线| 成人手机在线视频| 日韩欧美国产综合| 亚洲成人自拍网| 91丨九色丨国产丨porny| 日韩美女在线视频| 水野朝阳av一区二区三区| bt欧美亚洲午夜电影天堂| 日韩精品一区在线观看| 亚洲综合视频在线| 9i在线看片成人免费| 久久精品在线免费观看| 久久99精品视频| 4438成人网| 天天操天天干天天综合网| 91国产精品成人| 亚洲欧美色综合| 99精品热视频| 亚洲欧美偷拍三级| 色综合天天狠狠| 亚洲欧美色图小说| 一本大道av伊人久久综合| 国产精品国产三级国产普通话99 | 国产成人精品午夜视频免费| 欧美一区二区三区视频| 日韩成人精品在线观看| 欧美老女人第四色| 婷婷国产在线综合| 91精品国产综合久久婷婷香蕉| 亚洲国产综合视频在线观看| 色综合久久综合网| 亚洲激情综合网| 欧美午夜精品理论片a级按摩| 亚洲女爱视频在线| 精品视频一区二区不卡| 亚洲1区2区3区4区| 91精品国产一区二区| 免费精品视频在线| 久久婷婷国产综合精品青草| 国产精品一区二区三区99| 日本一区二区三区四区在线视频| 高清免费成人av| 日韩美女视频一区二区| 色诱亚洲精品久久久久久| 亚洲最新视频在线观看| 欧美在线色视频| 日本免费在线视频不卡一不卡二 | 国产亚洲精品久| 粉嫩高潮美女一区二区三区| 国产精品久久久久7777按摩| 一本色道久久综合狠狠躁的推荐 | 在线电影一区二区三区| 精品一区二区在线播放| 中文字幕乱码亚洲精品一区| 91网上在线视频| 午夜精品久久久久久久蜜桃app| 日韩久久精品一区| 成人在线视频一区二区| 亚洲精品va在线观看| 日韩欧美一卡二卡| 不卡av在线免费观看| 亚洲综合免费观看高清完整版在线| 欧美日韩一区二区三区在线| 韩国女主播成人在线观看| 中文字幕在线观看一区二区| 91精品国产综合久久精品app| 激情小说亚洲一区| 亚洲男人的天堂一区二区| 精品国产亚洲在线| 一本久久精品一区二区| 九色综合狠狠综合久久| 亚洲欧美影音先锋| 精品欧美黑人一区二区三区| 91玉足脚交白嫩脚丫在线播放| 日本成人在线不卡视频| 亚洲视频一区二区在线| 91精品国产综合久久国产大片| 成人在线一区二区三区| 麻豆一区二区在线| 亚洲精品久久嫩草网站秘色| 欧美一区二区三区喷汁尤物| 色欧美乱欧美15图片| 国产久卡久卡久卡久卡视频精品| 亚洲制服丝袜av| 国产精品青草综合久久久久99| 欧美老年两性高潮| 91传媒视频在线播放| av在线这里只有精品| 国产又黄又大久久| 琪琪久久久久日韩精品| 亚洲国产精品欧美一二99| 亚洲少妇30p| 国产日韩成人精品| www国产精品av| 91精品国产综合久久久久| 欧美三级视频在线播放| 色偷偷一区二区三区| 成人毛片老司机大片| 韩国中文字幕2020精品| 日本vs亚洲vs韩国一区三区二区| 亚洲国产一区二区在线播放| 亚洲精品国产第一综合99久久| 国产精品久久久久久一区二区三区| 精品成人一区二区三区四区| 欧美成人bangbros| 欧美成人一区二区三区片免费| 3atv一区二区三区| 91精品国产综合久久精品性色| 欧美精品一卡二卡| 欧美精品在线观看一区二区| 欧美丰满嫩嫩电影| 欧美一区二区三区在线看| 欧美日韩高清一区二区三区| 欧美系列日韩一区| 在线观看国产91| 欧美日韩一本到| 777a∨成人精品桃花网| 欧美一区二区三区公司| 日韩片之四级片| 精品日本一线二线三线不卡| 日韩精品中文字幕在线不卡尤物| 欧美一二三区在线| 久久免费电影网| 国产精品美女一区二区| 国产精品乱码一区二三区小蝌蚪| 国产精品久久精品日日| 伊人夜夜躁av伊人久久| 午夜视频久久久久久| 激情综合色综合久久| 成人一级视频在线观看| 91偷拍与自偷拍精品| 欧美色倩网站大全免费| 欧美tk—视频vk| 国产精品国产三级国产普通话三级| 亚洲欧美日韩一区二区三区在线观看| 一区二区三区四区不卡视频| 亚洲成a人v欧美综合天堂| 麻豆精品一区二区三区| 国产成人超碰人人澡人人澡| 在线观看不卡一区| 日韩女同互慰一区二区| 欧美高清一级片在线观看| 一二三区精品视频| 另类综合日韩欧美亚洲| 成人综合日日夜夜| 欧美日韩免费观看一区三区| 欧美v国产在线一区二区三区| 中文字幕一区在线观看| 日韩经典一区二区| 成人精品视频一区| 欧美肥妇free| 亚洲欧美二区三区| 国内精品免费在线观看| 日本久久一区二区| 精品sm在线观看| 亚洲一区二区三区国产| 国产成人在线视频播放| 欧美区一区二区三区| 欧美高清在线一区| 日本视频中文字幕一区二区三区| 大美女一区二区三区| 欧美老肥妇做.爰bbww| 综合婷婷亚洲小说| 久久国产综合精品| 欧美午夜精品久久久久久孕妇| 久久色在线观看| 日韩电影在线看| 色素色在线综合| 国产精品久久久久三级| 国产精品一级黄| 日韩视频在线观看一区二区| 亚洲最新视频在线观看| 成人av综合在线| 久久久久久久精| 精品一区二区精品| 欧美精品九九99久久| 艳妇臀荡乳欲伦亚洲一区| www.在线成人| 欧美国产精品一区二区三区| 免费看精品久久片| 在线综合视频播放| 亚洲二区在线观看| 色香蕉成人二区免费| 日韩毛片视频在线看| 成人一区二区三区中文字幕| 精品国产自在久精品国产| 日韩国产高清影视| 欧美丰满美乳xxx高潮www| 亚洲影院在线观看| 在线观看一区二区精品视频| 亚洲伊人色欲综合网| 欧美综合亚洲图片综合区| 一区二区欧美视频| 欧美亚洲国产一区在线观看网站 | 日韩精品福利网| 777a∨成人精品桃花网| 蜜桃传媒麻豆第一区在线观看|