简单求助:网络互联问题

bailee 2009-09-05 01:24:37
正在做一个C/S系统,由于考虑到将来的连接数,用了IOCP的短连接:
每次都是客户端先发起连接,再由服务器端返回一组数据后断开连接。

现在的问题是:如果服务器端有数据需要主动与客户端通信,如何实现?

请教!!!
...全文
86 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bailee 2009-09-08
  • 打赏
  • 举报
回复
不知道QQ是如何实现的?

据了解,QQ用的是UDP,所以有可能(可能性较大哦)掉包,而现在手上的系统要求安全度高,所以...

shenyi0106 2009-09-05
  • 打赏
  • 举报
回复
根据你的需求,你为何不UDP呢?
songtao_01 2009-09-05
  • 打赏
  • 举报
回复
用长连接,然后通过客户端标识把数据发送给特定客户端
songtao_01 2009-09-05
  • 打赏
  • 举报
回复
1、客户端数量多,估计50万左右,后续可能会更多;
那么我上面说的长连接就不合适了,貌似一台电脑能同时处理5K-6K的长连接就不错了.何况电脑让不让连接达到50W也是个问题.我说的标识是用socket标示每个连接.

可能真的要用udp了
奔跑前行 2009-09-05
  • 打赏
  • 举报
回复
断开连接后、!!服务器没办法准确发送数据过去了吧!!真就有点UDP协议的方式, 我也做了C/S网络连接 我采用的 异步选择方式 这样服务端和多客户端通信时没问题的。。。
Wenxy1 2009-09-05
  • 打赏
  • 举报
回复
现在的问题是:如果服务器端有数据需要主动与客户端通信,如何实现?

用长连接。
feilinhe 2009-09-05
  • 打赏
  • 举报
回复
服务器主动连接客户端?
还是采用客户端定时查询吧
dengxuxing 2009-09-05
  • 打赏
  • 举报
回复
"每次都是客户端先发起连接,再由服务器端返回一组数据后断开连接。"如果像你说的做法的话,基本就像是用UDP协议一样,服务器端只能在接收到数据的短时间内能发数据给客户端,如果现在客户端没连服务器只有等到下一次客户端连上时才能发数据了.
要是你不怕延迟的话,客户端可以开定时器来连服务器,然后一段时间后断开,这样周而复始.
lzl_2008 2009-09-05
  • 打赏
  • 举报
回复
“客户端标识”可不可以直接用client的IP
Pro_X 2009-09-05
  • 打赏
  • 举报
回复
一般没有这样用的吧
Pro_X 2009-09-05
  • 打赏
  • 举报
回复
客户端数量多,估计50万左右

这么多用户,udp吧
bailee 2009-09-05
  • 打赏
  • 举报
回复
To Pro_X: 确实一般都不会这样用,但谁叫咱们都是“二班”的呢 :)

To dengxuxing、feilinhe:客户端的定时查询也考虑过,但我认为这并不是最好的方案,谢谢 :)

To fly0622:IOCP与多客户端连接是没问题的(差不多10来万),之所以想用短连接,就是想再提升客户端连接数,谢谢!!!

To songtao_01:思路和我想的一样,谢先! 但就是不知道“客户端标识”如何做,如果知道,那就搞定了 :)

To shenyi0106:正如 ilysoony 说的一样,UDP可能会丢包,这是我的考虑,谢谢两位,谢谢!!!

To ALL:这个系统之所以这样设计,原因如下:
1、客户端数量多,估计50万左右,后续可能会更多;
2、业务模型为客户端不时会有数据请求,但不多;
3、95%以上的数据都是客户端先发起,且只需要返回一组数据就可以了;
4、服务器需要主动发送的数据少,用长连接太可惜了。

其实这就是一个设计思路的问题,如果有朋友能有更好的高招,高分另开帖。
Sou2012 2009-09-05
  • 打赏
  • 举报
回复
UDP会丢包的。

18,356

社区成员

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

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