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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? socket.lst

?? W3100是WIZnet公司專門為以太網(wǎng)互聯(lián)和嵌入式設(shè)備推出的硬件TCP/IP協(xié)議棧芯片
?? LST
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
 664          {
 665   1              I_STATUS[s] = 0;
 666   1              COMMAND(s) = CLISTEN;         // LISTEN
 667   1      }
 668          #endif
 669          
 670          /*
 671          ********************************************************************************
 672          *               Create random value for initial Seq# when establishing TCP connection
 673          *
 674          * Description : In this function, you can add some source codes to create random number for initial Seq#
 675          *     In real, TCP initial SEQ# should be random value. 
 676          *               (Currently, we're using static value in EVB/DK.)
 677          * Arguments   : s - channel number
 678          * Returns     : None
 679          * Note        : API Function
 680          ********************************************************************************
 681          */
 682          void initseqnum(SOCKET s)
 683          {
 684   1              int i;
 685   1      
 686   1              i = s;
 687   1      
 688   1              SEQ_NUM.lVal++;     // Designate initial seq#
 689   1                                  // If you have random number generation function, assign random number instead
             - of SEQ_NUM.lVal++.
 690   1      
 691   1              *TX_WR_PTR(s)       = SEQ_NUM.cVal[0];
 692   1              *(TX_WR_PTR(s) + 1) = SEQ_NUM.cVal[1];
 693   1              *(TX_WR_PTR(s) + 2) = SEQ_NUM.cVal[2];
 694   1              *(TX_WR_PTR(s) + 3) = SEQ_NUM.cVal[3];
 695   1              wait_1us(2);        // Wait until TX_WR_PRT has been written safely. ( Must have delay(1.6us) if next action
             - is to write 4byte-pointer register )
 696   1      
 697   1              *TX_RD_PTR(s)       = SEQ_NUM.cVal[0];
 698   1              *(TX_RD_PTR(s) + 1) = SEQ_NUM.cVal[1];
 699   1              *(TX_RD_PTR(s) + 2) = SEQ_NUM.cVal[2];
 700   1              *(TX_RD_PTR(s) + 3) = SEQ_NUM.cVal[3];
 701   1              wait_1us(2);        // Wait until TX_RD_PRT has been written safely.
 702   1      
 703   1              *TX_ACK_PTR(s)       = SEQ_NUM.cVal[0];
 704   1              *(TX_ACK_PTR(s) + 1) = SEQ_NUM.cVal[1];
 705   1              *(TX_ACK_PTR(s) + 2) = SEQ_NUM.cVal[2];
 706   1              *(TX_ACK_PTR(s) + 3) = SEQ_NUM.cVal[3];
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 13  

 707   1      }
 708          
 709          #ifdef  __TCP__
 710          /*
 711          ********************************************************************************
 712          *               Function for sending TCP data.
 713          *
 714          * Description : Function for sending TCP data and Composed of the send() and send_in() functions.
 715          *     The send() function is an application I/F function.
 716          *     It continues to call the send_in() function to complete the sending of the data up to the size of th
             -e data to be sent
 717          *     when the application is called.
 718          *     The send_in() function receives the return value (the size of the data sent), calculates the size of
             - the data to be sent,
 719          *     and calls the send_in() function again if there is any data left to be sent.
 720          * Arguments   : s   - channel number
 721          *               buf - Pointer pointing data to send
 722          *               len - data size to send
 723          * Returns     : Succeed: sent data size, Failed:  -1;
 724          * Note        : API Function
 725          ********************************************************************************
 726          */
 727          int send(SOCKET s, const u_char xdata* buf, u_int len)
 728          {
 729   1              int ptr, size;
 730   1      
 731   1              if (len <= 0) return (0);
 732   1              else 
 733   1              {
 734   2                      ptr = 0;
 735   2                      do {
 736   3                              size = send_in(s, buf + ptr, len);
 737   3                              if (size == -1) return -1;      // Error
 738   3                              len = len - size;
 739   3                              ptr += size;
 740   3                      } while ( len > 0);
 741   2              }
 742   1      
 743   1              return ptr;
 744   1      }
 745          
 746          /*
 747          ********************************************************************************
 748          *               Internal function for sending TCP data.
 749          *
 750          * Description : Called by the send() function for TCP transmission.
 751          *    It first calculates the free transmit buffer size
 752          *    and compares it with the size of the data to be transmitted to determine the transmission size.
 753          *    After calculating the data size, it copies data from TX_WR_PTR.
 754          *    It waits if there is a previous send command in process.
 755          *    When the send command is cleared, it updates the TX_WR_PTR up to the size to be transmitted and perfo
             -rms the send command.
 756          * Arguments   : s   - channel number
 757          *               buf - Pointer pointing data to send
 758          *               len - data size to send
 759          * Returns     : Succeeded: sent data size, Failed: -1
 760          * Note        : Internal Function
 761          ********************************************************************************
 762          */
 763          int send_in(SOCKET s, const u_char xdata * buf, u_int len)
 764          {
 765   1              u_char k;
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 14  

 766   1              int size;
 767   1              un_l2cval wr_ptr, ack_ptr;
 768   1              u_char * send_ptr;
 769   1      
 770   1      S_START:
 771   1              EX0 = 0;
 772   1              k = *SHADOW_TXWR_PTR(s);        // Must read the shadow register for reading 4byte pointer registers
 773   1              wait_1us(2);                    // wait for reading 4byte pointer registers safely
 774   1              wr_ptr.cVal[0] = *TX_WR_PTR(s);
 775   1              wr_ptr.cVal[1] = *(TX_WR_PTR(s) + 1);
 776   1              wr_ptr.cVal[2] = *(TX_WR_PTR(s) + 2);
 777   1              wr_ptr.cVal[3] = *(TX_WR_PTR(s) + 3);
 778   1      
 779   1              k = *SHADOW_TXACK_PTR(s);       // Must read the shadow register for reading 4byte pointer registers
 780   1              wait_1us(2);                    // wait for reading 4byte pointer registers safely
 781   1              ack_ptr.cVal[0] = *TX_ACK_PTR(s);
 782   1              ack_ptr.cVal[1] = *(TX_ACK_PTR(s) + 1);
 783   1              ack_ptr.cVal[2] = *(TX_ACK_PTR(s) + 2);
 784   1              ack_ptr.cVal[3] = *(TX_ACK_PTR(s) + 3);
 785   1              EX0 = 1;
 786   1      
 787   1              // Calculate send free buffer size
 788   1              if (wr_ptr.lVal >= ack_ptr.lVal) size = SSIZE[s] - (wr_ptr.lVal - ack_ptr.lVal);
 789   1              else size = SSIZE[s] - (0 - ack_ptr.lVal + wr_ptr.lVal);
 790   1      
 791   1              
 792   1              if (size > SSIZE[s])                                                            // Recalulate after some 
             -delay because of error in pointer caluation
 793   1              {
 794   2                      if (select(s, SEL_CONTROL) != SOCK_ESTABLISHED) return -1;              // Error
 795   2      
 796   2                      wait_1ms(1);
 797   2      #ifdef DEBUG
              //              printf("1 ");
              //              printf("%.8lx ", wr_ptr.lVal);
              //              printf("%.8lx\r\n", ack_ptr.lVal);
                              PutString("send_in() at S_START : ");PutHTOA(s); PutString(" : "); PutLTOA(wr_ptr.lVal) ; PutString(" : 
             -");PutLTOA(ack_ptr.lVal) ;PutStringLn("");
              #endif
 803   2                      goto S_START;
 804   2              }
 805   1      
 806   1              if (size == 0)                                                                  // Wait when previous sen
             -ding has not finished yet and there's no free buffer
 807   1              {
 808   2                      if (select(s, SEL_CONTROL) != SOCK_ESTABLISHED) return -1;              // Error
 809   2                      wait_1ms(1);
 810   2      #ifdef DEBUG
                              PutStringLn("send_in() at S_START : size == 0");
              #endif
 813   2                      goto S_START;
 814   2              }
 815   1              else if (size < len)    len = size;
 816   1      
 817   1              send_ptr = (u_char *)( SBUFBASEADDRESS[s] + (UINT)(wr_ptr.lVal & SMASK[s]));    // Calculate pointer to d
             -ata copy
 818   1              write_data(s, buf, send_ptr, len);                                              // data copy
 819   1      
 820   1              while (COMMAND(s) & CSEND)                                                      // Confirm send command
 821   1                      if (select(s, SEL_CONTROL) != SOCK_ESTABLISHED) return -1;                  // Error
 822   1      
 823   1              wr_ptr.lVal = wr_ptr.lVal + len;                                                // tx_wr_ptr update
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 15  

 824   1              *TX_WR_PTR(s) = wr_ptr.cVal[0];
 825   1              *(TX_WR_PTR(s) + 1) = wr_ptr.cVal[1];
 826   1              *(TX_WR_PTR(s) + 2) = wr_ptr.cVal[2];
 827   1              *(TX_WR_PTR(s) + 3) = wr_ptr.cVal[3];
 828   1      
 829   1              COMMAND(s) = CSEND;                                                             // SEND
 830   1      
 831   1          return      (len);
 832   1      }
 833          
 834          /*
 835          ********************************************************************************
 836          *               TCP data receiving function.
 837          *
 838          * Description : This function is for receiving TCP data.
 839          *     The recv() function is an application I/F function. It continues to wait for as much data as the app
             -lication wants to receive.
 840          * Arguments   : s   - channel number
 841          *               buf - Pointer where the data to be received is copied
 842          *               len - Size of the data to be received
 843          * Returns     : Succeeded: received data size, Failed: -1
 844          * Note        : API Fcuntion
 845          ********************************************************************************
 846          */
 847          int recv(SOCKET s, const u_char xdata* buf, u_int len)
 848          {
 849   1              u_char k;
 850   1              u_int size;
 851   1              un_l2cval wr_ptr, rd_ptr;
 852   1              u_char * recv_ptr;
 853   1      
 854   1      R_START:
 855   1              EX0 = 0;
 856   1              k = *SHADOW_RXWR_PTR(s);        // Must read the shadow register for reading 4byte pointer registers
 857   1              wait_1us(2);                    // wait for reading 4byte pointer registers safely
 858   1              wr_ptr.cVal[0] = *RX_WR_PTR(s);
 859   1              wr_ptr.cVal[1] = *(RX_WR_PTR(s) + 1);
 860   1              wr_ptr.cVal[2] = *(RX_WR_PTR(s) + 2);
 861   1              wr_ptr.cVal[3] = *(RX_WR_PTR(s) + 3);
 862   1      
 863   1              k = *SHADOW_RXRD_PTR(s);        // Must read the shadow register for reading 4byte pointer registers
 864   1              wait_1us(2);                    // wait for reading 4byte pointer registers safely
 865   1              rd_ptr.cVal[0] = *RX_RD_PTR(s);
 866   1              rd_ptr.cVal[1] = *(RX_RD_PTR(s) + 1);
 867   1              rd_ptr.cVal[2] = *(RX_RD_PTR(s) + 2);
 868   1              rd_ptr.cVal[3] = *(RX_RD_PTR(s) + 3);
 869   1              EX0 = 1;
 870   1      
 871   1              // calculate received data size
 872   1              if ( len <= 0 ) return (0);
 873   1              else if (wr_ptr.lVal >= rd_ptr.lVal) size = wr_ptr.lVal - rd_ptr.lVal;
 874   1              else size = 0 - rd_ptr.lVal + wr_ptr.lVal;
 875   1      
 876   1              
 877   1              if (size < len)                                                                 // Wait until receiving i
             -s done when received data size is less then len
 878   1              {
 879   2                      if (select(s, SEL_CONTROL) != SOCK_ESTABLISHED) return -1;              // Error
 880   2                      wait_1ms(1);  
 881   2      #ifdef DEBUG
              //              printf("size < len\r\n");
                              PutStringLn("size < len");
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 16  

              #endif
 885   2                      goto R_START;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久众筹精品私拍模特| 久久久欧美精品sm网站| 国产乱国产乱300精品| 亚洲日本一区二区| 日韩欧美国产一二三区| 一本大道综合伊人精品热热| 国产九九视频一区二区三区| 午夜精品久久久久久久99樱桃| 欧美激情一区二区三区在线| 日韩欧美电影一区| 欧洲精品一区二区三区在线观看| 粉嫩在线一区二区三区视频| 日韩成人午夜精品| 一区二区三区在线免费观看| 久久精品人人做人人综合| 欧美精品色综合| 久久综合色一综合色88| 欧美日韩亚州综合| 99久久国产综合精品女不卡| 国产精品1区二区.| 黑人巨大精品欧美黑白配亚洲| 天天综合色天天| 亚洲综合激情另类小说区| 中文字幕一区在线| 久久精品水蜜桃av综合天堂| 欧美成人欧美edvon| 欧美福利电影网| 精品视频在线视频| 欧美网站大全在线观看| 91久久久免费一区二区| 91色视频在线| 色又黄又爽网站www久久| 成人18视频在线播放| 国产在线视频一区二区| 黑人巨大精品欧美一区| 国产又黄又大久久| 国产美女在线观看一区| 国产成人精品网址| 国产**成人网毛片九色| www.性欧美| 99久久国产综合精品色伊| 99re亚洲国产精品| 91免费国产在线观看| 成人动漫精品一区二区| 99这里只有精品| 在线观看一区日韩| 欧美日韩你懂得| 日韩天堂在线观看| 精品乱码亚洲一区二区不卡| 久久综合丝袜日本网| 国产视频一区二区在线观看| 国产精品情趣视频| 亚洲免费毛片网站| 欧美综合一区二区| 欧美日韩国产bt| 欧美成人aa大片| 国产午夜精品一区二区| 中文字幕一区二区三区在线观看 | 激情六月婷婷综合| 国产一区91精品张津瑜| 国产成人免费视频一区| www.久久久久久久久| 在线日韩一区二区| 欧美一卡在线观看| 欧美国产精品专区| 一区二区三区精品在线观看| 日韩电影一区二区三区四区| 国产一区二区女| 99精品久久免费看蜜臀剧情介绍| 欧美日韩一区中文字幕| 日韩精品一区二区在线| 国产精品成人免费| 日韩精品乱码av一区二区| 国产精品一区二区久久不卡 | 激情偷乱视频一区二区三区| 懂色av一区二区三区免费看| 色8久久精品久久久久久蜜| 欧美日韩国产乱码电影| 蜜臀久久99精品久久久画质超高清| 国产又黄又大久久| 91九色最新地址| 久久影院午夜片一区| 中文字幕一区二区在线播放 | 亚洲成人高清在线| 国精产品一区一区三区mba桃花| www.视频一区| 日韩一级精品视频在线观看| 亚洲欧洲无码一区二区三区| 天天综合网天天综合色| 成人国产精品免费网站| 欧美一级黄色录像| 亚洲桃色在线一区| 激情综合色综合久久综合| 99国产精品国产精品久久| 日韩网站在线看片你懂的| 亚洲美女免费在线| 国产一区二区三区免费播放| 欧美日韩在线播放一区| 国产精品你懂的在线| 蜜桃一区二区三区在线观看| 91免费国产在线观看| 国产午夜精品在线观看| 蜜臀av性久久久久蜜臀av麻豆| 色偷偷一区二区三区| 久久精品亚洲国产奇米99| 日本aⅴ免费视频一区二区三区 | 日韩中文字幕亚洲一区二区va在线 | 五月天精品一区二区三区| 不卡av在线免费观看| 欧美xxxxxxxx| 日韩高清一级片| 日本高清不卡在线观看| 国产精品毛片高清在线完整版| 久久国产精品99久久人人澡| 精品视频资源站| 亚洲综合无码一区二区| 99久久精品99国产精品| 中文字幕成人av| 国产一区福利在线| 精品三级在线看| 日韩电影免费在线观看网站| 欧美日韩成人综合| 亚洲小少妇裸体bbw| 在线看一区二区| 亚洲精品视频在线观看免费| 99国产精品久久| 亚洲摸摸操操av| 99久久精品国产麻豆演员表| 国产精品美女久久久久久久久久久| 经典三级视频一区| 26uuu亚洲| 国内不卡的二区三区中文字幕 | 91丨九色丨蝌蚪丨老版| 国产精品三级av在线播放| 欧美一区二区人人喊爽| 婷婷久久综合九色综合伊人色| 欧美亚洲综合一区| 亚洲成人你懂的| 欧美精选一区二区| 日本大胆欧美人术艺术动态| 91精品国产91久久久久久最新毛片| 日韩和欧美的一区| 欧美zozo另类异族| 国产精品一区二区视频| 国产日产欧产精品推荐色| 成人美女在线观看| 亚洲欧美国产三级| 欧美日韩三级一区二区| 天堂成人免费av电影一区| 日韩一区二区中文字幕| 激情av综合网| 国产精品网站在线观看| 91看片淫黄大片一级| 亚洲成人动漫在线观看| 91麻豆精品国产91| 韩国女主播一区| 国产精品福利一区二区| 色丁香久综合在线久综合在线观看 | 国产精品久久久99| 在线一区二区视频| 日韩成人精品视频| 久久久综合九色合综国产精品| 成人中文字幕在线| 亚洲成人动漫在线观看| 精品久久久久久久久久久院品网| 成人精品一区二区三区四区 | 国产91色综合久久免费分享| 中文字幕一区二区三| 欧美日韩一本到| 韩国毛片一区二区三区| 亚洲丝袜精品丝袜在线| 日韩一卡二卡三卡四卡| 成人黄色电影在线 | 91影院在线观看| 日韩—二三区免费观看av| 国产日韩欧美精品一区| 欧美唯美清纯偷拍| 国产成人免费av在线| 性做久久久久久免费观看| 26uuu欧美| 欧美亚洲丝袜传媒另类| 国产在线麻豆精品观看| 一区二区三区免费| 欧美精品一区在线观看| 在线观看视频一区二区欧美日韩| 国模一区二区三区白浆| 亚洲亚洲人成综合网络| 国产女人18水真多18精品一级做| 欧亚洲嫩模精品一区三区| 国内精品久久久久影院薰衣草| 亚洲一区中文在线| 国产午夜亚洲精品午夜鲁丝片| 精品视频一区二区不卡| 国产a级毛片一区| 裸体在线国模精品偷拍| 亚洲第一主播视频| 亚洲色图欧美偷拍| 久久久亚洲高清| 日韩精品一区国产麻豆| 欧美日韩一区二区三区高清|