<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM7單片機(jī)+RTL8019嵌入式TCP_IP協(xié)議棧使用分析

          ARM7單片機(jī)+RTL8019嵌入式TCP_IP協(xié)議棧使用分析

          作者: 時間:2012-12-05 來源:網(wǎng)絡(luò) 收藏

          WEB服務(wù)器程序清單
          /*****************************************************
          * 名稱:TCP_TEST()
          * 功能:設(shè)置TCP模塊
          * 入口:無
          * 出口: 無
          *********************************************************/

          void TCP_SETUP(void)
          {
          /*設(shè)置本地TCP服備器的IP地址*/
          TCP_serveraddr.sin_family = 0;
          TCP_serveraddr.sin_addr[0] = MY_IP_ADD[0];
          TCP_serveraddr.sin_addr[1] = MY_IP_ADD[1];
          TCP_serveraddr.sin_addr[2] = MY_IP_ADD[2];
          TCP_serveraddr.sin_addr[3] = MY_IP_ADD[3];
          TCP_serveraddr.sin_port = 80;
          /*將TCP server的IP地址與SOCKET綁定*/
          t = socket(0,0,TCP_PROTOCOL);
          iii=bind(t,TCP_serveraddr,sizeof(TCP_serveraddr));
          iii=listen(t,4);

          }
          /********************************************************
          * 名稱:TCP_TEST()
          * 功能:TCP打開網(wǎng)頁測試
          * 入口:無
          * 出口: 無
          ********************/
          void TCP_TEST(void)
          {
          temp = accept(t,TCP_clientaddr,iii);/*accept網(wǎng)頁獲取請求*/

          if(temp != 0xffff)
          { templen = recv(temp,TCP_rec_buff,1024,0);
          if(TCP_rec_buff[5] == ' ')
          { send(temp,httpweb,169,0); /*發(fā)送http網(wǎng)頁*/
          send(temp,web,395,0);

          }
          else if(TCP_rec_buff[5] == '1')
          {
          send(temp,httpgif,169,0); /*發(fā)送GIF,BMP圖片背景*/
          send(temp,bmp,442,0);
          }
          close(temp);
          }
          }

          2)簡單UDP服務(wù)器—通過函數(shù)UDP_TEST()完成設(shè)置本地UDP服備器的IP地址和遠(yuǎn)端口服務(wù)器的IP地址, 其過程如下:
          1.調(diào)用SOCKET API函數(shù)socket(0,0,TCP_PROTOCOL)分配一個SOCKET
          2.調(diào)用SOCKET API函數(shù)bind()將UDP server的IP地址與SOCKET綁定,將調(diào)用SOCKET API函數(shù)enable_a_port_listen(1025)起動監(jiān)聽。
          3.函數(shù)UDP_TEST()通過函數(shù)recfrom()接收UDP數(shù)據(jù)報,接收到的UDP數(shù)據(jù)報調(diào)用SOCKET API函數(shù)sendto()回傳遠(yuǎn)程服務(wù)器。
          UDP服務(wù)器程序清單

          * 名稱:UDP_SETUP()
          * 功能:設(shè)置UDP模塊
          * 入口:無
          * 出口: 無
          ***********************************************************/
          void UDP_SETUP(void)
          {
          serveraddr.sin_family = 0; /*設(shè)置遠(yuǎn)端服務(wù)器的IP地址*/
          serveraddr.sin_addr[0] = 192;
          serveraddr.sin_addr[1] = 168;
          serveraddr.sin_addr[2] = 0;
          serveraddr.sin_addr[3] = 1;
          serveraddr.sin_port = 1026;
          s = socket(0,0,UDP_PROTOCOL);
          clientaddr.sin_family = 0; /*設(shè)置本地UDP客戶端的IP地址*/
          clientaddr.sin_addr[0] = MY_IP_ADD[0];
          clientaddr.sin_addr[1] = MY_IP_ADD[1];
          clientaddr.sin_addr[2] = MY_IP_ADD[2];
          clientaddr.sin_addr[3] = MY_IP_ADD[3];
          clientaddr.sin_port = 1025;
          /*將本地IP地址與SOCKET綁定*/
          iii=bind(s,clientaddr,sizeof(clientaddr));
          enable_a_port_listen(1025);
          }

          /************************************************************
          * 名稱:UDP_TEST()
          * 功能:UCP數(shù)據(jù)報收發(fā)測試
          * 入口:無
          * 出口: 無
          *************************************************************/
          void UDP_TEST(void)
          {
          /*接收UDP數(shù)據(jù)報*/
          len = recvfrom(s,rec_buff,400,0,serveraddr,iii);
          if(len > 0)
          { /*將接收到的UDP數(shù)據(jù)報發(fā)送回服務(wù)器端*/
          sendto(s,rec_buff,len,0,serveraddr,iii);
          }
          }

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM7 RTL8019 協(xié)議棧

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();