久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

Rainbow網絡通信:一個簡單的TCP客戶端

作者:白櫟旸   來源:本站原創   點擊數:  更新時間:2014年04月30日   【字體:

    Rainbow開發包對TCP協議進行了很好的封裝,使用起來同樣簡單,在軟件包的“Projects\TCP-Client”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。這個程序主要展示如何通過TCP向服務器端發送字符串,看看main.cpp的代碼:

#include "WProgram.h"
#include "Ethernet.h"
#include "EthernetClient.h"
 
//網絡模塊的MAC地址
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//網絡模塊的IP地址
IPAddress ip(192, 168, 1, 15);
 
//定義對方ip和端口
IPAddress serverIp(192, 168, 1, 171);
uint16_t port = 6000;
 
//定義TCP客戶端對象
EthernetClient client;
//記錄向服務器發送消息的次數,我們的例子只發送5次
uint8_t sendNums = 0;
 
void setup()
{
  //初始化Rainbow
  boardInit();
  //初始化默認串口
  Serial.begin();
  Serial.println("TCP-Client start...");
  //對網絡進行初始化
  Ethernet.begin(mac, ip);
  //與服務器三次握手,建立連接
  if(client.connect(serverIp, port))
  {
    Serial.println("TCP client-to-server established...");
  }
}
 
void loop()
{
  //判斷是否建立起有效連接
  if(client.connected())
  {
    //發送5次消息后關閉連接
    if(sendNums > 5)
    {
      client.stop();
    }
    client.print("Hello,world!\r\n");
    sendNums++;
    //間隔2秒發送一次
    delay(2000);
  }
}
 
int main()
{
  setup();
  while(1) loop();
}
 
    TCP協議是一個可靠的通信協議,在通信前需要經過三次握手方能建立起連接,連接成功后才能進行可靠的流式通信。和UDP通信相比,TCP通信由于通信前要進行三次握手,每次發送數據完畢要等對方確認(ACK),而UDP只管發送出去,少了協商過程,因此在局域網或者可靠通信的網絡環境下通信效率會高于TCP,但是在廣域網或者通信質量不太好的環境下,UDP往往不是很可靠,如果要在這種環境下使用UDP可靠通信的話,還需要一些數據收發確認算法(協議)的支持。
 
    Rainbow作為客戶端,要和服務器進行通信,需要以下幾個步驟:
    1、定義EthernetClient對象:EthernetClient client
    2、調用client.connect(serverIp, port)進行TCP三次握手,握手成功返回true
    3、發送前調用client.connected()判斷連接是否有效
    4、通過client中的print、write等方法向服務器發送消息,client是Stream的子類,可以使用Stream中的方法。
    5、發送消息完畢,調用client.stop()關閉連接
 
    上面的程序編譯無誤后,將程序燒寫到Rainbow中,然后在電腦上運行串口調試工具并和Rainbow連接成功,在端口號為6000上啟動TCP監聽,然后按下Rainbow的復位鍵,可以在串口調試工具中看到輸出的日志,同時,每隔2秒,將在從網絡上接收到Rainbow發來的數據,Rainbow發送5次后自動中斷和服務器的連接:
關閉窗口

相關文章

主站蜘蛛池模板: 亚洲男人天堂 | www四虎com | 亚洲精品久久久 | 亚洲精品在线91 | 免费的色网站 | 久久国产精品视频 | 高清国产午夜精品久久久久久 | 亚洲一区二区在线播放 | 夜夜骑首页| 欧美精品在线观看 | 亚洲免费人成在线视频观看 | 日韩aⅴ在线观看 | 一区二区三区观看视频 | 欧美中文字幕一区 | 亚洲精品久久久久中文字幕二区 | av网站观看| 一级午夜aaa免费看三区 | 免费在线黄 | 综合中文字幕 | 成人av高清在线观看 | 蜜桃av一区二区三区 | 国产精品国产精品国产专区不片 | re久久| 久久久久国产精品一区三寸 | 日韩午夜在线播放 | 一起操网站 | 免费毛片网站 | 美女久久久久久久 | 欧美激情视频一区二区三区免费 | 国产成人jvid在线播放 | 成人在线视频免费播放 | 成人av在线大片 | 国产精品一区在线 | 欧美久久一区二区 | 日韩精品在线看 | 99久久久国产精品 | 欧美极品在线观看 | 国产高清精品一区二区三区 | 性色的免费视频 | 国产真实乱对白精彩久久小说 | 男人av网 |