如果用心跳包检测的话。
客户掉线,完成端口如何得到超过n长时间没有收过消息得套节字?

解决方案 »

  1.   

    gz
    感觉完成端口模型很难做到完善,最近正在看apache的实现。
      

  2.   

    主动断开客户,不就是执行shutdown 和 closesocket操作吗?超时逻辑,一般是由timer或监视线程实现的,两者本质相同。都是定时检测。
      

  3.   

    超时逻辑,一般是由timer或监视线程实现的,两者本质相同。都是定时检测。
    //===================================================================
    同意楼上,可以在完成端口外另开一个线程,定时间检测;
      

  4.   

    一般服务器端都会有一个在线连接列表,一种常用的办法是定时检查链表中最后通讯时间是否超出设定,如果超过则释放资源,断开连接。
    //==========================================================
    请问server 中最后通讯时间如何设置呢?
      

  5.   

    to gdy119:
    最后通讯时间,是在每个客户端给你发最后一个包时记录的最后时间,只要客户端有最新包到达,就记录此包的到达时间,这就是最后通讯时间。