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

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

?? socket.lst

?? W3100是WIZnet公司專門為以太網互聯和嵌入式設備推出的硬件TCP/IP協議棧芯片
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 886   2              }
 887   1      
 888   1              recv_ptr = (u_char *) (RBUFBASEADDRESS[s] + (UINT)(rd_ptr.lVal & RMASK[s]));    // Calculate pointer to b
             -e copied received data
 889   1      
 890   1              read_data(s, recv_ptr, buf, len);                                               // Copy receibed data
 891   1      
 892   1              rd_ptr.lVal += len;                                                             // Update rx_rd_ptr
 893   1              *RX_RD_PTR(s) = rd_ptr.cVal[0];
 894   1              *(RX_RD_PTR(s) + 1) = rd_ptr.cVal[1];
 895   1              *(RX_RD_PTR(s) + 2) = rd_ptr.cVal[2];
 896   1              *(RX_RD_PTR(s) + 3) = rd_ptr.cVal[3];
 897   1      
 898   1              COMMAND(s) = CRECV;                                                             // RECV
 899   1      
 900   1          return      (len);
 901   1      }
 902          #endif  // __TCP__
 903          
 904          #ifdef  __UDP__
              /*
              ********************************************************************************
              *               UDP data sending function.
              *
              * Description : Composed of the sendto()and sendto_in() functions.
              *    The send() function is an application I/F function.
              *    It continues to call the send_in() function to complete the sending of the data up to the size of the
             - data to be sent
              *    when the application is called.Unlike TCP transmission, it designates the destination address and the
             - port.
              * Arguments   : s    - channel port
              *               buf  - Pointer pointing data to send
              *               len  - data size to send
              *               addr - destination IP address to send data
              *               port - destination port number to send data
              * Returns     : Sent data size
              * Note        : API Function
              ********************************************************************************
              */
              u_int sendto(SOCKET s, const u_char xdata* buf, u_int len, u_char * addr, u_int port)
              {
                      int ptr, size;
              
                      while(COMMAND(s) & CSEND)                                   // Wait until previous send commnad has completed
                              if(select(s,SEL_CONTROL) == SOCK_CLOSED) return -1; // Errors.
              
                      if (port != 0)                                              // Designate destination port number
                      {                                               
                              *DST_PORT_PTR(s) = (u_char)((port & 0xff00) >> 8);
                              *(DST_PORT_PTR(s) + 1) = (u_char)(port & 0x00ff);
                      }
              
                      *DST_IP_PTR(s) = addr[0];                                   // Designate destination IP address
                      *(DST_IP_PTR(s) + 1) = addr[1];
                      *(DST_IP_PTR(s) + 2) = addr[2];
                      *(DST_IP_PTR(s) + 3) = addr[3];
              
              
              #ifdef DEBUG
              //      printf("sendto Parameter\r\n");
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 17  

              //      printf("Destination Port : %d\r\n", (u_int)*(DST_PORT_PTR(s)));
              //      printf("Destination IP : %d.%d.%d.%d\r\n", *DST_IP_PTR(s) ,*DST_IP_PTR(s)+1, *DST_IP_PTR(s)+2, *DST_IP_
             -PTR(s)+3);
                      PutStringLn("sendto Parameter");
                      PutString("Destination Port : ");PutHTOA(*DST_PORT_PTR(s));PutHTOA(*(DST_PORT_PTR(s)+1));PutStringLn("");
                      PutString("Destination IP : "); 
                      PutHTOA(*DST_IP_PTR(s)); PutByte('.'); PutHTOA(*(DST_IP_PTR(s)+1)); PutByte('.'); PutHTOA(*(DST_IP_PTR(s)
             -+2)); PutByte('.'); PutHTOA(*(DST_IP_PTR(s)+3));
                      PutStringLn("");
              #endif
                      if (len <= 0) return (0);
                      else 
                      {
                              ptr = 0;
                              do{
                                      size = sendto_in(s, buf + ptr, len);
                                      if(size == -1) return -1;       // Error
                                      len = len - size;
                                      ptr += size;
                              }while ( len > 0);
                      }
                      return ptr;
              }
              /*
              ********************************************************************************
              *               UDP data sending function.
              *
              * Description : An internal function that is the same as the send_in() function of the TCP.
              * Arguments   : s   - Channel number
              *               buf - Pointer indicating the data to send
              *               len - data size to send
              * Returns     : Sent data size
              * Note        : Internal Function
              ********************************************************************************
              */
              u_int sendto_in(SOCKET s, const u_char xdata* buf, u_int len)
              {
                      u_char k;
                      u_int size;
                      un_l2cval wr_ptr, rd_ptr;
                      u_char * send_ptr;
              
              S2_START:
                      if(select(s,SEL_CONTROL)==SOCK_CLOSED) return -1;       // Error
                      EX0 = 0;
                      k = *SHADOW_TXWR_PTR(s);
                      wait_1us(2);
                      wr_ptr.cVal[0] = *TX_WR_PTR(s);
                      wr_ptr.cVal[1] = *(TX_WR_PTR(s) + 1);
                      wr_ptr.cVal[2] = *(TX_WR_PTR(s) + 2);
                      wr_ptr.cVal[3] = *(TX_WR_PTR(s) + 3);
              
                      k = *SHADOW_TXRD_PTR(s);
                      wait_1us(2);
                      rd_ptr.cVal[0] = *TX_RD_PTR(s);
                      rd_ptr.cVal[1] = *(TX_RD_PTR(s) + 1);
                      rd_ptr.cVal[2] = *(TX_RD_PTR(s) + 2);
                      rd_ptr.cVal[3] = *(TX_RD_PTR(s) + 3);
                      EX0 = 1;
              
                      // Calculate free buffer size to send
                      if (wr_ptr.lVal >= rd_ptr.lVal) size = SSIZE[s] - (wr_ptr.lVal - rd_ptr.lVal);
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 18  

                      else size = SSIZE[s] - (0 - rd_ptr.lVal + wr_ptr.lVal);
                      
                      if (size > SSIZE[s])                                                            // Recalulate after some 
             -delay because of error in pointer caluation
                      {
                              wait_1ms(1);
              #ifdef DEBUG
                              PutString("sendto_in() at S2_START : ");PutHTOA(s); PutString(" : "); PutLTOA(wr_ptr.lVal) ; PutString("
             - : ");PutLTOA(rd_ptr.lVal) ;PutStringLn("");
              #endif
                              goto S2_START;
                      }
              
                      if (size == 0)                                                                  // Wait when previous sen
             -ding has not finished yet and there's no free buffer
                      {
                              wait_1ms(1);
              #ifdef DEBUG
                              PutString("sendto_in() at S2_START : size == 0");
              #endif
                              goto S2_START;
                      } 
                      else if (size < len)    len = size;
              
                      send_ptr = (u_char *)(SBUFBASEADDRESS[s] + (UINT)(wr_ptr.lVal & SMASK[s]));     // Calculate pointer to c
             -opy data pointer
              
                      write_data(s, buf, send_ptr, len);                                              // Copy data
              
                      while (COMMAND(s) & CSEND)                                                      // Confirm previous send command
                              if(select(s,SEL_CONTROL)==SOCK_CLOSED) return -1;                       // Error
              
                      wr_ptr.lVal = wr_ptr.lVal + len;                                                // Update tx_wr_ptr
                      *TX_WR_PTR(s) = wr_ptr.cVal[0];
                      *(TX_WR_PTR(s) + 1) = wr_ptr.cVal[1];
                      *(TX_WR_PTR(s) + 2) = wr_ptr.cVal[2];
                      *(TX_WR_PTR(s) + 3) = wr_ptr.cVal[3];
              
                      COMMAND(s) = CSEND;                                                             // SEND
              
                  return      (len);
              }
              /*
              ********************************************************************************
              *               UDP or IP data receiving function.
              *
              * Description : Function for receiving UDP and IP layer RAW mode data, and handling the data header.
              * Arguments   : s    - channel number
              *               buf  - Pointer where the data to be received is copied
              *               len  - any number greater than zero.
              *               addr - Peer IP address for receiving
              *               port - Peer port number for receiving
              * Returns     : Data size of received packet 
              * Note        : API Function
              ********************************************************************************
              */
              u_int recvfrom(SOCKET s, const u_char xdata * buf, u_int len,u_char * addr, u_int * port)
              {
                      struct _UDPHeader                      // When receiving UDP data, header added by W3100A
                      {
                              union 
                              {
C51 COMPILER V8.02   SOCKET                                                                10/17/2006 16:52:42 PAGE 19  

                                      struct
                                       { 
                                              u_int size; 
                                              u_char addr[4]; 
                                              u_int port;
                                      }header;
                                      u_char stream[8];
                              }u;
                      }xdata UDPHeader;
              
                      u_int ret;
                      u_char * recv_ptr;
                      un_l2cval wr_ptr, rd_ptr;
                      u_long size;
                      u_char k;
              
                      if(select(s,SEL_CONTROL)==SOCK_CLOSED) return -1;
                      EX0 = 0;
                      k = *SHADOW_RXWR_PTR(s);
                      wait_1us(2);
                      wr_ptr.cVal[0] = *RX_WR_PTR(s);
                      wr_ptr.cVal[1] = *(RX_WR_PTR(s) + 1);
                      wr_ptr.cVal[2] = *(RX_WR_PTR(s) + 2);
                      wr_ptr.cVal[3] = *(RX_WR_PTR(s) + 3);
              
                      k = *SHADOW_RXRD_PTR(s);
                      wait_1us(2);
                      rd_ptr.cVal[0] = *RX_RD_PTR(s);
                      rd_ptr.cVal[1] = *(RX_RD_PTR(s) + 1);
                      rd_ptr.cVal[2] = *(RX_RD_PTR(s) + 2);
                      rd_ptr.cVal[3] = *(RX_RD_PTR(s) + 3);
                      EX0 = 1;
              
                      // Calculate received data size
                      if(len <=0) return 0;
                      else if (wr_ptr.lVal >= rd_ptr.lVal) size = wr_ptr.lVal - rd_ptr.lVal;
                      else size = 0 - rd_ptr.lVal + wr_ptr.lVal;
              
                      if(size == 0) return 0;
                      
                      recv_ptr = (u_char *)(RBUFBASEADDRESS[s] + (UINT)(rd_ptr.lVal & RMASK[s]));     // Calulate received data
             - pointer
              
                      if ((OPT_PROTOCOL(s) & 0x07) == SOCK_DGRAM)                                     // Handle UDP data
                      {
                              read_data(s,recv_ptr,UDPHeader.u.stream,8);                             // W3100A UDP header copy
                              addr[0] = UDPHeader.u.header.addr[0];                                   // Read IP address of the peer
          

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品免费在线观看| 一区av在线播放| 亚洲精品va在线观看| 久久精品国产一区二区三| 一本色道综合亚洲| 久久精品日产第一区二区三区高清版 | 91最新地址在线播放| 日韩欧美激情四射| 亚洲福利一区二区三区| 99久久国产综合色|国产精品| 精品奇米国产一区二区三区| 亚洲国产视频一区| 色悠悠亚洲一区二区| 国产精品系列在线| 国产精品一区二区三区99| 日韩欧美色电影| 日韩精品三区四区| 欧美日韩免费观看一区三区| 亚洲欧美日韩在线| 91视频免费播放| 中文字幕一区视频| 成人网在线播放| 国产精品午夜春色av| 久久电影国产免费久久电影| 欧美精品一二三| 首页综合国产亚洲丝袜| 欧美喷潮久久久xxxxx| 亚洲福利电影网| 欧美日韩国产高清一区| 丝袜诱惑制服诱惑色一区在线观看 | 国产一区二区三区观看| 欧美一区二区三区人| 亚洲国产日日夜夜| 欧美色视频一区| 五月天丁香久久| 欧美日本一区二区| 美日韩黄色大片| 精品欧美一区二区三区精品久久| 久久99久久精品欧美| 欧美精品一区二区三区一线天视频| 久久超碰97人人做人人爱| 337p日本欧洲亚洲大胆色噜噜| 精品一区二区三区久久| 久久久久国产精品麻豆| 成人教育av在线| 亚洲免费在线看| 欧美日韩国产a| 奇米一区二区三区av| 欧美精品一区二区久久婷婷 | 色综合久久久久网| 亚州成人在线电影| 日韩欧美你懂的| 成人国产精品视频| 亚洲国产一区二区三区| 日韩欧美成人午夜| 不卡视频在线观看| 午夜影院久久久| 久久夜色精品国产噜噜av| 91视频在线观看| 奇米综合一区二区三区精品视频| 久久久久九九视频| 欧美亚洲禁片免费| 美女网站一区二区| 综合欧美一区二区三区| 91精选在线观看| 成人免费福利片| 人人超碰91尤物精品国产| 久久久午夜精品| 欧美日韩在线综合| 国产成人午夜精品影院观看视频| 一区二区三区视频在线观看| 欧美白人最猛性xxxxx69交| 成人一区在线看| 日本亚洲一区二区| 亚洲视频一区二区在线观看| 欧美一区二区三区在线观看| 成人av网在线| 久久国产精品区| 亚洲综合清纯丝袜自拍| 国产欧美视频一区二区| 欧美喷潮久久久xxxxx| 99re这里只有精品6| 久久国产精品第一页| 亚洲一区二区在线免费观看视频| 久久久噜噜噜久久中文字幕色伊伊| 欧洲色大大久久| 成人av在线资源| 黄页网站大全一区二区| 亚洲韩国一区二区三区| 亚洲色图.com| 国产欧美日韩久久| 久久综合九色综合欧美98| 欧美日韩久久久一区| 一本到一区二区三区| 成人免费视频app| 国内成+人亚洲+欧美+综合在线| 亚洲第一在线综合网站| 亚洲人成小说网站色在线| 国产欧美一区二区三区在线看蜜臀 | 国产成人一区二区精品非洲| 青娱乐精品视频在线| 一区二区三区不卡视频| 亚洲欧洲精品天堂一级| 欧美极品少妇xxxxⅹ高跟鞋| 久久综合久久综合久久| 久久综合精品国产一区二区三区| 51精品秘密在线观看| 欧美精品xxxxbbbb| 欧美美女一区二区| 欧美日韩精品系列| 欧美日韩精品一区二区三区蜜桃| 日本韩国欧美一区| 色88888久久久久久影院野外 | 国精产品一区一区三区mba桃花| 青青草原综合久久大伊人精品| 亚洲亚洲精品在线观看| 亚洲成av人片一区二区梦乃 | 岛国一区二区三区| 国产成人综合在线观看| 国产成人欧美日韩在线电影| 高清在线成人网| 成人av高清在线| 色综合激情久久| 91国产丝袜在线播放| 欧美人与性动xxxx| 欧美一区二区久久| 久久免费美女视频| 日本一区二区三区在线不卡| 国产精品久久久久四虎| 亚洲精品国产无套在线观| 亚洲国产va精品久久久不卡综合| 日韩激情av在线| 狠狠v欧美v日韩v亚洲ⅴ| 大白屁股一区二区视频| 色琪琪一区二区三区亚洲区| 欧美三级资源在线| 精品乱人伦一区二区三区| 中文av一区二区| 亚洲愉拍自拍另类高清精品| 日韩一区精品视频| 国产一区二区三区高清播放| 99精品视频在线观看免费| 欧美日产在线观看| 久久午夜色播影院免费高清 | 久久久精品中文字幕麻豆发布| 国产精品美女久久久久高潮 | 国产精品国产三级国产三级人妇| 亚洲欧美日韩在线| 老司机精品视频在线| 9色porny自拍视频一区二区| 欧美日韩在线不卡| 国产日本欧美一区二区| 亚洲第四色夜色| 国产精品66部| 欧美日韩日日骚| 国产欧美精品一区| 午夜电影网亚洲视频| 成人一区在线观看| 日韩一级片在线播放| 中文字幕一区不卡| 精品一区二区在线免费观看| 在线一区二区视频| 久久综合国产精品| 亚洲电影一区二区三区| 不卡一区二区三区四区| 欧美精品一区二区三区在线| 一二三区精品福利视频| 丰满少妇久久久久久久| 91精品国产综合久久精品图片| 国产精品久久看| 国内成+人亚洲+欧美+综合在线 | 成人app在线观看| 日韩一级二级三级精品视频| 亚洲欧洲日产国产综合网| 国产精品18久久久久久久网站| 欧美肥妇free| 亚洲嫩草精品久久| 成人a区在线观看| 2021久久国产精品不只是精品| 午夜成人在线视频| 在线精品视频一区二区三四| 国产精品色噜噜| 国产乱人伦偷精品视频免下载| 91麻豆精品国产91久久久使用方法 | 中文字幕亚洲区| 国产传媒日韩欧美成人| 欧美精品一区二区久久婷婷| 秋霞午夜av一区二区三区| 欧美精品久久久久久久多人混战 | 精品久久久久久久久久久久久久久久久 | 国产精品女人毛片| 国产剧情在线观看一区二区| 精品国产一二三| 久久99这里只有精品| 日韩欧美色电影| 精品一区二区免费视频| 欧美xxxx在线观看| 激情五月激情综合网| 日韩视频免费观看高清完整版在线观看| 91精品欧美一区二区三区综合在 |