MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

  (2014-06-14 19:54:00)
标签: 

it

分类: VC

MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信 MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

服务器端发送数据给客户端

先看服务器端:
CAsyncSocket  m_sockSend;                       //声明一个Socket对象

点击发送数据后,执行下面这些动作
         m_sockSend. Create(m_ServerPort,SOCK_DGRAM,NULL)  //创建套接字
         m_sockSend. Bind(m_ServerPort,m_ServerIP);              //绑定本地套接口
        SetTimer(1,3000,NULL);                                                      //创建一个定时器定时发送

在定时器函数里,发送十位整数,不够的补零
  sprintf(szSend,"0d",iIndex++);             //发送的数据置入缓冲区
int iSend=  m_sockSend. SendTo(szSend,10,m_ClientPort,m_ClientIP,0);   //发送UDP数据
m_strSend=szSend;
m_sendcount+=iSend;//记录发送数据的字节数

点击停止发送按键
KillTimer(1);//关闭定时器
m_sockSend. Close();//关闭套接字
再看看接收端:
CAsyncSocket  m_sockReceive;                                 //声明一个Socket对象
点击接收数据按键
m_sockReceive. Create(m_ClientPort,SOCK_DGRAM,NULL)   //创建套接字
m_sockReceive. Bind(m_ClientPort,m_ClientIP);                     //绑定本地套接口
SetTimer(1,1000,NULL);                                       //创建一个定时器定时接收

在定时器函数里,接收UDP数据
int iRecv = m_sockReceive.ReceiveFrom(szRecv,10,m_ServerIP,m_ServerPort,0);
if(iRecv==-1)
{
m_ReceiveData="没有收到数据!";
}
else
{
m_receivecount+=iRecv;//接收数据的字节数
szRecv[iRecv]=NULL;
m_ReceiveData=szRecv;
}

点击停止接收按键
KillTimer(1);//关闭定时器
m_sockReceive. Close();//关闭套接字
m_ReceiveData="停止接收数据!";

运行结果:
MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

猜你喜欢

转载自blog.csdn.net/afu1972715000/article/details/42963787