当前位置:  技术问答>linux和unix

keepalive 失效?

    来源: 互联网  发布时间:2016-04-25

    本文导语:  我在linux下写了个tcp的服务器程序,开了一个线程监听,每一个连接再开一个线程,在每个连接的线程内,收到一个数据就返回另一些数据给客户端。 为防止网线断开的情况,我用keepalive检测,初始化在为每个客户端...

我在linux下写了个tcp的服务器程序,开了一个线程监听,每一个连接再开一个线程,在每个连接的线程内,收到一个数据就返回另一些数据给客户端。
为防止网线断开的情况,我用keepalive检测,初始化在为每个客户端建立的线程内。
可是我拔掉网线不管用。
当只收数,不发数时没事
数据收发都是select方式的。

|
这个间隔是个kernel参数,比如linux下可以这样来改这个值:
echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time
这样可以把间隔改为1分钟。

|
keepalive 应该解决不了你的问题。
keepalive包只有在以下情况才发送:在socket上两个小时没有数据传送。当然也可以改变keepalive包的发送间隔,但是问题是这个间隔一旦改变将影响系统中所有的socket.
传统的做法是使用heartbeat来监测网络是否有问题,你可以搜一下,关于这个的资料很多。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net接口socketoptions的类成员方法: so_keepalive定义及介绍
  • 如何设置socket的keepalive时间
  • tcp_keepalive_interval


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3