UDP輕鬆應用(zz)

來源:互聯網
上載者:User

下載原始碼

一、概述
  "使用者資料包通訊協定"(User Datagram Protocol,簡稱UDP)是基於不需連線的通訊協定,不保證可靠資料的傳輸;"傳輸控制通訊協定"(Transmission Cotrol Protocol,簡稱TCP)是基於串連的通訊協定,可提供個兩台電腦之間可靠無差錯的資料轉送。但是UDP能夠向若干台目標電腦發送資料;接收發自若干個源電腦的資料。而在多台電腦構成的模擬或控制系統中,經常會出現多台電腦進行資料轉送,所以在模擬或控制軟體中採用UDP協議的較多。

二、代碼說明
  為了便於說明模擬或控制中對多個變數的傳輸,採用結構體的資料結構形式。建立兩個工程分別為發送Send工程和接收工程。其中發送資料的工程代碼為:

void CSendDlg::OnButtonSend() //發送資料{//發送資料、對象定義struct _PLATFORM{int err_num;//故障代碼//控制(模擬)參數int sj;int hy;int zy;} Platform,*pPlatform;CSocket m_SendSocket;//構造一個通訊端對象        //發送資料的初始化Platform.err_num=0;//系統正常Platform.sj=200;Platform.hy=300;Platform.zy=100;pPlatform=&Platform;//資料發送m_SendSocket.Create(2330,SOCK_DGRAM);//建立一個通訊端控制代碼(UDP)m_SendSocket.SendTo( pPlatform,sizeof(Platform),3550,"127.0.0.1");//發送資料給本機電腦}

接收資料的工程代碼為:

void CReceiveDlg::OnButtonReceive() {//資料、對象定義struct _PLATFORM1//為了區別於發送資料的資料結構{int err_num1;//故障代碼//控制(模擬)參數int sj1;int hy1;int zy1;} Platform1,*pPlatform1;CSocket m_ReceiveSocket;char *buff1[256];CString str1;CString str2;CString str3;CString str4;         //接收資料m_ReceiveSocket.Create(3550,SOCK_DGRAM);m_ReceiveSocket.Receive(buff1,256);//接收資料的測試pPlatform1=(struct _PLATFORM1*)buff1;//非常關鍵str1.Format("%d",Platform1.err_num1=pPlatform1->err_num1);str2.Format("%d",Platform1.sj1=pPlatform1->sj1);str3.Format("%d",Platform1.hy1=pPlatform1->hy1);str4.Format("%d",Platform1.zy1=pPlatform1->zy1);AfxMessageBox(str1);AfxMessageBox(str2);AfxMessageBox(str3);AfxMessageBox(str4);}

程式執行時,要先觸發"接受資料"按鈕再觸發"發送資料"按鈕可以得到通過UDP協議傳輸的結構體資料。

三、映像描述
  發送資料的工程和接收資料的工程一和圖二所示:


圖一 發送資料介面圖

建立一個按鈕,ID為"IDC_BUTTON_SEND",標題為"發送資料"。


圖二 接收資料介面圖

  建立一個按鈕,ID為"IDC_BUTTON_RECEIVE",標題為"接收資料"。右邊的訊息對話方塊為接收的資料顯示。

四、結束語
  本文為了簡單的描述UDP通訊的過程,將發送資料和接收的資料結構和通訊端都定義在對應的訊息函數體內,一般聲明是放在標頭檔中的。發送資料和接收資料僅通過調用通訊端的三個函數Create()、SendTo()和Receive()就滿足了模擬和控制參數資料的傳輸,應用起來簡單易行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.