返回首页
当前位置: 网站首页>>协议大全>>UDP协议>>

基于UDP的网络通讯程序

时间:2007-05-01 来源: 作者: 点击:
我们知道TCP/IP协议是至今发展最为成功的协议之一,也是整个互联网的基
  我们知道TCP/IP协议是至今发展最为成功的协议之一,也是整个互联网的基础。它在传输层有两个不同的协议:TCP和UDP,用途都很广泛,下面我就UDP做一个示例程序。整个例子有两个程序组成,一个发送数据,另一个程序接收数据后,完成绘图工作。

  本文程序运行效果图如下:

 

 

 

 

 

  一、发送程序

  首先建立数据发送程序(Fason)。一共发送四个数据:圆心的X坐标、圆心的Y坐标、圆半径R、圆的颜色。它的实现主要如下: void CFasonDlg::OnSend()
{
  UpdateData(TRUE);
  CString m_Getstring;
  
  this->m_Cob.GetLBText(m_Cob.GetCurSel(),m_Getstring);
  if(m_Getstring==_T("Red"))
  yuan1.color=1;
  if(m_Getstring==_T("Green"))
    yuan1.color=2;
  if(m_Getstring==_T("Blue"))
    yuan1.color=3;
  yuan1.x=m_x;
  yuan1.y=m_y;
  yuan1.r=m_r;
  p=&yuan1;
  CDSocket m_hSocket;
  m_hSocket.Create(2330,SOCK_DGRAM);
  m_hSocket.SendTo( p,sizeof(yuan1),3550,"127.0.0.1");//用结构体发送。
  m_x=0;
  m_y=0;
  m_r=0;
  m_hSocket.Close();
  UpdateData(FALSE);
}
发送数据时有一个技巧,就是所有数据放在一个结构体中来发送,不用一个一个发送。但是不能在结构体中包含CString等可以变长的数据类型。

  二、接收程序

  下面我们看一下接收数据端的程序(Jieshou)。如下: void CDASocket::OnReceive(int nErrorCode)
{
  char buff[256];
  int ret=0;
  ret=Receive(buff,256);
  if(ret==ERROR)
  {
    TRACE("ERROR!");
  }
  else
  m_pDoc->Presscessding(buff);
  class CAsyncSocket::OnReceive(nErrorCode);
}
三、数据处理与显示

我们设计程序时,数据通常在文档中处理,显示工作在视图中完成。当整个程序较小时,这感觉不到有何好处,但整个程序较大时,程序的条理就会较清晰,易读性好。所以一定要时时养成良好的设计习惯。数据在文档中处理如下:void CJieshouDoc::Presscessding(char* lbuff)
{
  buff=(struct yuan*)lbuff;
  p.x=buff->x;
  p.y=buff->y;
  p.r=buff->r;
  p.color=buff->color;
  UpdateAllViews(NULL);
}
在视图中的显示如下: void CJieshouView::OnDraw(CDC* pDC)
{
  CJieshouDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  x=pDoc->p.x;
  y=pDoc->p.y;
  r=pDoc->p.r;
  if(pDoc->p.color==1)
  pDC->SelectObject(new CBrush(RGB(255,0,0)));
  if(pDoc->p.color==2)
    pDC->SelectObject(new CBrush(RGB(0,255,0)));
  if(pDoc->p.color==3)
    pDC->SelectObject(new CBrush(RGB(0,0,255)));
  
   pDC->Ellipse(x-r,y-r,x+r,y+r);

------分隔线----------------------------
顶一下
(21)
39.6%
踩一下
(32)
60.4%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容