服务器 几秒钟处理 一个客户端

wuyanchao 2009-07-22 02:06:53
小弟,刚刚接触网络编程这块,碰到一个问题,服务器的代码 在运行过程有时会出错,原因在于 客户端那边,如果突然出错,服务器的代码 没有执行完 全部的代码 导致出错。
所以 我在想 有没有让服务器在规定时间,比如5秒处理完一个客户端,然后就结束,如果没有处理完,也强制关闭此连接。谢谢了,不胜感激~
...全文
108 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
movaxeffext 2010-06-01
  • 打赏
  • 举报
回复
yong select
udknight 2009-07-24
  • 打赏
  • 举报
回复

int nSeconds;
int nLen = sizeof(nSeconds);
// 取得连接建立的时间
::getsockopt(pBuffer->sClient,
SOL_SOCKET, SO_CONNECT_TIME, (char *)&nSeconds, &nLen);
if(nSeconds != -1 && nSeconds > 5)
aidy22 2009-07-24
  • 打赏
  • 举报
回复
你可以把你处理消息的函数改为一个线程专门来处理
jyh_baoding 2009-07-23
  • 打赏
  • 举报
回复
估计是程序设置不合理
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyanchao 的回复:]
引用 5 楼 epeaktop 的回复:
建议考虑用SEH机制,对发生异常的代码单独处理。建议参考windows via c/c++一书中的结构化异常处理部分

不想用seh了 ,就最简单的 5秒 处理然后断开 怎么弄
[/Quote]
DWORD m_startCounter = GetTickCount();
while(GetTickCount() - m_startCounter < 5000) //5s
{
//....Processing
}
//
我辣椒哥 2009-07-23
  • 打赏
  • 举报
回复
SEH机制不是灵活点吗?你能确定5秒就完成了,4.7、5.1秒呢
dodogun 2009-07-23
  • 打赏
  • 举报
回复
既然是VC编程,服务端就用个简单的完成端口模型试试看.简单的完成端口实现代码网上很多.
wuyanchao 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 epeaktop 的回复:]
建议考虑用SEH机制,对发生异常的代码单独处理。建议参考windows via c/c++一书中的结构化异常处理部分
[/Quote]
不想用seh了 ,就最简单的 5秒 处理然后断开 怎么弄
偶像罗斯福 2009-07-22
  • 打赏
  • 举报
回复
建议考虑用SEH机制,对发生异常的代码单独处理。建议参考windows via c/c++一书中的结构化异常处理部分
wuyanchao 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xy_dream 的回复:]
这个好像没法规定时间吧,不一定多长时间的,在执行的过程中,服务器跟客户端是独立的,怎么可能客户端的出错会导致服务器出错呢,你程序问题很大
[/Quote]
客户端出错,导致服务器 没有接受到,所以代码就停在那里,就出错了
oyljerry 2009-07-22
  • 打赏
  • 举报
回复
你应该做好你服务端的错误处理,当客户端出错时,你的服务端返回错误信息后,自己进行错误处理
hhwei1985 2009-07-22
  • 打赏
  • 举报
回复
up
xy_dream 2009-07-22
  • 打赏
  • 举报
回复
这个好像没法规定时间吧,不一定多长时间的,在执行的过程中,服务器跟客户端是独立的,怎么可能客户端的出错会导致服务器出错呢,你程序问题很大

18,356

社区成员

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

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