读书人

完成端口怎么向所有客户发送广播有木

发布时间: 2012-04-07 17:31:51 作者: rapoo

完成端口如何向所有客户发送广播,有木有神仙知道?
一个多星期了,还没解决。。神啊,救救我吧!
这是我发的求助帖,里面有代码!
http://topic.csdn.net/u/20111018/17/a37d3641-2915-4edf-889b-43973a925a81.html?seed=480539027&r=76136012#r_76136012
还有这个贴:
http://topic.csdn.net/u/20111019/15/14c18b92-99d3-4162-bfc2-7a5f55cf95fc.html

为什么我用LIST不行了,到底该如何操作了?

[解决办法]

[解决办法]
浅谈IOCP:
1 - IOCP一般都有一个主线程负责客户端的连接
2 - 一个工作线程负责处理完成端口通知
3 - 根据你的业务逻辑和交互流程,你可以投递不同的异步IO操作到SOCKET,然后再完成端口上监听通知即可

那么,对于你的问题。也符合同样的思路:既然一个用户退出了,你一定可以在完成端口上得到一个完成端口通知。针对这个通知返回的结果值进行判断即可判断是否需要删除该用户了。这里,分为两种情况:失败、成功。失败了,当然要删除这个用户。成功了还要看具体情况,如果完成键和重叠IO数据结构指针都是NULL,当然也需要删除这个用户了。是不是有用户退出,并且完成端口上收不到通知的情况发生,我不敢肯定。如果为了考虑这种情况,那么你不妨设计一种HEARTBEAT机制也就是keep alive机制测试通信双方的在线情况。让客户端定时的发送HeartBeat特征数据包到服务器即可,超时后多判断几次,最后删除该用户即可。

供参考。
[解决办法]
很久不来,积分都被万恶的CSDN管理员给吃走了。不就是发了几个招聘广告么,犯不着这么狠吧!难不成怕我不付钱给你们不成?说好给我电话联系的,结果这么久过去了,还是没有电话给我发招聘广告。真J8垃圾的CSDN。
[解决办法]

学习一下
[解决办法]
www.codeproject.com上面有个例子,就是客户端连上来,服务器向指定或所有客户端发消息。其实也简单,每个客户端是一个socket,你向它send就行了。

读书人网 >VC/MFC

热点推荐