小弟,刚刚接触网络编程这块,碰到一个问题,服务器的代码 在运行过程有时会出错,原因在于 客户端那边,如果突然出错,服务器的代码 没有执行完 全部的代码 导致出错。
   所以 我在想 有没有让服务器在规定时间,比如5秒处理完一个客户端,然后就结束,如果没有处理完,也强制关闭此连接。谢谢了,不胜感激~

解决方案 »

  1.   

    建议考虑用SEH机制,对发生异常的代码单独处理。建议参考windows via c/c++一书中的结构化异常处理部分
      

  2.   

    不想用seh了 ,就最简单的 5秒 处理然后断开 怎么弄
      

  3.   

    SEH机制不是灵活点吗?你能确定5秒就完成了,4.7、5.1秒呢
      

  4.   

    DWORD m_startCounter = GetTickCount();
    while(GetTickCount() - m_startCounter < 5000) //5s
    {
    //....Processing
    }
    //
      

  5.   


    int nSeconds;
    int nLen = sizeof(nSeconds);
    // 取得连接建立的时间
    ::getsockopt(pBuffer->sClient, 
    SOL_SOCKET, SO_CONNECT_TIME, (char *)&nSeconds, &nLen);
    if(nSeconds != -1 && nSeconds > 5)