客户端多线程长连接如何接收数据。

tp机器猫 2013-10-29 05:17:25
服务端采用的IOCP长连接,现在设计客户端。以下是我的想法,

当客户端与服务端建立通信后,所有的网络交互通过同一个Socket与服务端通信,而这样导至,如果有多个线程同时要与服务端通信,同时发送请求到服务端,发送好像没什么问题,但发送完成后接收好像就有问题了,
如:有三个线程发送请求

A ---> --->

B ---> 服务端处理 ---> 处理完后发送回客户端

C ---> --->

这里面可能A的处理时间会较长,怎样才能保证,A,B,C的请求能够正确的获取到属于自已的数据。
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
szhyu 2013-11-01
  • 打赏
  • 举报
回复
我倒觉得是你设计的问题,最好只用一个线程进行I/O通讯,其他线程只负责处理数据就好了
wxliangzyt 2013-10-30
  • 打赏
  • 举报
回复
2楼的解决方法,我完全同意,愿楼主,试一下,应该OK
tp机器猫 2013-10-30
  • 打赏
  • 举报
回复
不知道别人的是怎么处理的,像网络游戏客户端应该是长连接,然后多线程处理吧。他们用的什么思路呢。
tp机器猫 2013-10-29
  • 打赏
  • 举报
回复
那有什么别的处理方法没,没做过长连接的,不知道别人都怎么处理的,
tiger波波 2013-10-29
  • 打赏
  • 举报
回复
如果非这样做的话只能在协议上想办法了,比如线程1把自己的线程关键字,如序号发给服务器,服务器返回时也带着这个序号,别的线程一看序号不是自己就不处理

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧