zoukankan      html  css  js  c++  java
  • tcp keepalive

    设置正常情况下,我们设置 tcp 的 keepalive 选项的代码如下:
    
    
    
    TCP的KeepAlive保活机制
    
    
    
    我们通常需要调整触发 KeepAlive 的 idle 时间间隔:
    
    
    s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 10)
    最后一个参数 10 表示在连接不活跃 10s 后开始 KeepAlive 检测。
    
    
    s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 6)
    最后一个参数表示每隔 6s 发送一次。
    
    
    
    如果不使用 KeepAlive 算法检测连接状态,会导致单方面断开连接后,另一方无法感知。比如 A 在用 recv 函数等待 B 发送数据,
    
    但这时候 B 已经失效,A 会一直等在 recv 函数上不能返回。
    
    
    node2:/root/test#cat t17.py 
    import socket
    import IN
    import struct
    import time
    b=2
    def getnum(x):
        b='2'
        for y in range(x):
            #print y
            b=b+'2'
            if len(b) == x:
                #print '-------------'
                #print len(b)
                return b
    print getnum(1024)
    c=getnum(1460)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    #class IN:
    #    IP_MTU = 14
    #    IP_PMTUDISC_DONT = 0
    #    IP_PMTUDISC_DO = 2
    #    IP_MTU_DISCOVER=10
    #s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    #s.setsockopt(socket.IPPROTO_IP, IN.IP_MTU_DISCOVER,IN.IP_PMTUDISC_DONT)
    # print dir(s.setsockopt(socket.SOL_SOCKET))
    s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
    s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 10)
    s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 2)
    s.connect(("192.168.137.2",8080))
    print len(c)
    s.send(c)
    #option = getattr(IN, 'IP_MTU_DISCOVER', 10)
    #print 'MTU:', s.getsockopt(socket.IPPROTO_IP, option)
    time.sleep(2000)
    s.close()
  • 相关阅读:
    servlet-01
    JavaWeb——文件上传和下载
    tomcat 7.0.94 下载安装步骤
    java 中 contains() containsKey() containsvalue() 使用
    java通过Runtime和Process类调用外部命令
    build.xml编译报错Specified VM install not found: type Standard VM, name jdk1.7.0_45
    微信小程序样式旋转
    微信小程序轮播图组件 swiper,swiper-item及轮播图片自适应
    HTTPS请求
    ztree插件的使用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348446.html
Copyright © 2011-2022 走看看