iocp(完成端口)采用WSARecv WSASend处理数据,WSASend群发(广播)消息
最近在耍iocp,也在网上看了不少例子,但却基本没看到使用WSASend群发的例子
最多只是使用WSASend将数据回传,而这个功能相对比较简单,只要学会使用WSARecv
回传则比较容易实现,而广播则较难。
一开始我采用的是send将数据群发(广播),这样不需要使用重叠I/O,也较容易的实现了功能,
但没成功使用WSASend群发消息,心里总有点不舒服,于是慢慢琢磨,最后终于实现了简单的群发功能
但是代码中使用了较多锁,这大大降低了运行效率,感兴趣的朋友可以自己优化。
大体框架跟网上的代码差不多,只是要注意几个细节。下面就一一阐述下。(代码太多,只贴关键代码,其它省略号代替)
定义变量:
accept客户端后,将socket与分配的内存保存
...........................
工作线程中:
if(RECV_MSG==pIoData->operationType)
.....
这里PostQueuedCompletionStatus至关重要!!
else if(SEND_MSG==pIoData->operationType)
.....
工程下载地址(工程比较乱,将就看,发现错误,请指出,感激不尽):
http://download.csdn.net/detail/woshiyuanlei/8641447
iocp(完成端口)采用WSARecv WSASend处理数据,WSASend群发(广播)消息相关推荐
- 高级性能服务器编程模型【IOCP完成端口】开发实现【二】
因为需要参考各种资料,所以还是需要一些时间才能够做好的. 而且在开发中,还会面对一些不得不仔细去解决的问题. 我打算尽量从Win32API的基础上面进行开发,能够不使用Delphi封装的类就不用,任何 ...
- 网络端口采用了1000M速率时候出现网络通信丢包+IDC机房托管服务器之间通信不畅...
网络端口采用了1000M速率时候出现网络通信丢包+IDC机房托管服务器之间通信不畅 网络故障: 交换机端口1000M,网卡也是1000M,网卡配置正常.ping时候间隔丢包. 表现为网络通信丢包,并且 ...
- Android学习笔记---26_采用JSON格式返回数据给资讯客户端,效率上要高于xml文件解析和传输
2013-03-22 26_采用JSON格式返回数据给资讯客户端 ---------------------------------------- 1.因为在android中,使用xml格式传输数据的 ...
- Android学习笔记---20_采用ContentProvider对外共享数据, UriMatcher类使用介绍 ,ContentUris类使用介绍,使用ContentResolver操作Conte
20_采用ContentProvider对外共享数据 ------------------------------------------ 1.比如通讯录,就是通过ContentProvider,实现 ...
- wireshark抓组播数据_捕获广播或多播地址数据MAC地址数据端口应用程序数据Wireshark网络分析实例集锦大学霸...
捕获广播或多播地址数据MAC地址数据端口应用程序数据Wireshark网络分析实例集锦大学霸 Wireshark网络分析实例集锦大学霸 3.8.3 捕获广播或多播地址数据广播地址就是当IP地址的网络 ...
- 在微信菜单中采用重定向获取用户数据
C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据 我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操 ...
- 【2016年第4期】大数据应用系统的消息驱动架构
贵芳1,李廉1,杨静1,武永卫2 1.合肥工业大学计算机与信息学院,安徽 合肥 230009: 2.清华大学计算机科学与技术系,北京 100084 摘要:基于消息驱动框架的软件开发成为大数据应用系统的 ...
- 独家 | 2017云栖大会放出哪些数据科学界的利好消息?
最近,科技界可谓盛事不断.继华为全联接大会.苹果秋季发布会.谷歌新品布会之后,由阿里巴巴主办的云栖大会在杭州西湖区云栖小镇正式拉开大幕.包括中国唯一的图灵奖获得者姚期智院士.中国量子力学第一人潘建伟院 ...
- SpringCloud采用Jackson序列化统一响应不正当的消息转换器导致的异常问题
SpringCloud采用Jackson序列化统一响应不正当的消息转换器导致的异常问题 环境说明 org.springframework.cloud.spring-cloud-dependencies ...
最新文章
- java中final class的一点思考
- dommel mysql_.Net Core AA.FrameWork应用框架介绍
- 虚拟主机众多用途你心仪哪一项?
- MNMBottomPullToRefresh
- 使用Charles抓包
- Color Tint
- mysql 迁移 nosql_从关系型Mysql到Nosql HBase的迁移实践
- bash脚本创建变量_创建一个Bash脚本模板
- 一本通1623Sherlock and His Girlfriend
- laravel本地项目上传服务器,laravel 上传本地文件到服务器
- HDU4282 A very hard mathematic problem(二分)
- luac 格式分析与反编译
- matlab页面背景颜色改变为黑底白字
- E盾网络验证企业版个人版离线版对接好的自绘界面4加密防破解易语言源码加密
- 期货大佬给交易者的交易箴言。
- 日志文件写入失败(permission denied)
- Neuroink的8个疯狂梦想
- 第03课:如何学习“机器学习”
- 冒泡排序算法,C语言冒泡排序算法详解
- 【开发工具】【objdump】反汇编工具objdump的使用
热门文章
- 《Linux就那么学》虚拟机安装配置及系统和配置的全过程
- 维吉尼亚密码 ctf
- windows查看服务器启动日志文件,windows服务器日志查看工具
- MathType Commands for Microsoft Word ErrorXThe MathType commands could not communicate with MathType
- windows10安装OpenFace2.2.0
- Twisted 框架简介
- 数据可视化:视觉感知与基本图表
- Cocos2d碰撞检测
- 技术专家太玄:企业数字化转型中数据底座“湖仓一体化”l 华坤道威专访
- 如何将dwg格式高程点转换为三维模型