MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信
2024-09-02 09:19:00
服务器端发送数据给客户端
先看服务器端:
CAsyncSocket m_sockSend; //声明一个Socket对象
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="停止接收数据!";
运行结果:
最新文章
- Linq查询表达式
- ytkah网站建设解决方案 大中小微企业营销利器
- Mango DS Training #48 ---线段树2 解题手记
- 51nod 最长递增子序列
- openstack 网络
- ARC和非ARC文件混编
- Javascript进阶篇——( 事件响应)笔记整理
- vim 撤销 恢复 快捷键
- 比较Java中几个常用集合添加元素的效率
- 详解C# Tuple VS ValueTuple(元组类 VS 值元组)
- windows 环境安装oracle11g db 或者RAC 防火墙必需要透过的进程,port
- 借助HTML中的特殊符号在markdown中打印出来
- 新建DataTable
- 关于numpy.maximum函数的测试
- (贪心和优先队列) POJ1862 Stripies
- django 错误之 ImportError: No module named **
- Java 数据库中文变成问号???解决办法
- 设计模式之prototype(原型模型)
- C#.NET常见问题(FAQ)-如何清空stringbuilder
- os,操作文件和目录