WEB开发网
开发学院软件开发VC UDP轻松应用 阅读

UDP轻松应用

 2010-06-04 20:40:29 来源:WEB开发网   
核心提示:一、概述"用户数据报协议"(User Datagram Protocol,简称UDP)是基于无连接的通信协议,不保证可靠数据的传输;"传输控制协议"(Transmission Cotrol Protocol,UDP轻松应用,简称TCP)是基于连接的通信协议,可提供个两台计算机之间

一、概述

"用户数据报协议"(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协议传输的结构体数据。

1 2  下一页

Tags:UDP 轻松 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接