socket不断连接、关闭问题,服务器没响应???

ding_net 2008-09-18 11:40:36
求助: socket问题,请帮忙看看,多谢了~~~~
-----------------------------------------------
客户端winXP(多线程请求连接);服务端linux,采用select模型(多线程处理数据传输)。
描述 网络上同时存在两种数据传输:
第一种是视频连接,客户端每请求一帧数据建立一个连接,数据传输结束后socket关闭;然后不断重复再建立连接-->请求数据-->关闭socket(由于客户不允许视频有中断,为了防止视频down掉,才采用这种方式连接的)

第二种是客户命令响应:
客户端每点一下按钮,请求一个连接,发送数据,关闭连接;
问题描述: 现在当用户很快的不断的点击按钮时(点慢时不死),服务器端程序没响应??
...全文
349 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsc2001 2008-09-20
  • 打赏
  • 举报
回复
这个问题是因为你的模式不科学,不应该每请求一帧数据就连接一次,这样服务器压力也太大了,增加了一些不必要的开销。
所以还是采用长连接,如果中间中断,可以采用断点续传的方式。
另外可以采用UDP的方式。
ding_net 2008-09-19
  • 打赏
  • 举报
回复
谢谢答复,我先试试完成端口模型看看效果如何~~
JsuFcz 2008-09-18
  • 打赏
  • 举报
回复
如果楼主硬要采用短连接的话,为什么不试试UDP呢
JsuFcz 2008-09-18
  • 打赏
  • 举报
回复
操作系统本身创建一个套接字已经是十分消耗资源了,而且楼主这里还采用多线程,我想楼主应该采用的是一条连接一个线程的IO模型吧,众所周知,创建一个线程的开销十分昂贵,而且系统的线程资源十分有限,也难怪没有响应了,也可能连接断开时线程没有及时释放加速了系统资源的耗尽。
Wenxy1 2008-09-18
  • 打赏
  • 举报
回复
1. 你为何要用短连接呢?服务端的压力会很大的。用长连接试试。
2. 把服务器的硬件配置高一点。
3. (由于客户不允许视频有中断,为了防止视频down掉,才采用这种方式连接的),没明白意思,长连接就不可行吗?为什么不行?


18,356

社区成员

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

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