zoukankan      html  css  js  c++  java
  • keepalive 自动关闭无法访问的连接

    node2:/root/test#cat connect2.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.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 3)
    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(90)
    s.close()
    
    
    
    发三次,间隔2秒 ,重试次数3次
    
    
    node2:/root/test#netstat -na | grep 8080
    tcp       25      0 192.168.137.3:52178         192.168.137.2:8080          ESTABLISHED 
    node2:/root/test#netstat -na | grep 8080
    node2:/root/test#netstat -na | grep 8080
    node2:/root/test#
    
    然后自动关闭连接
  • 相关阅读:
    MySql常用命令
    多线程
    redhat7.7(centOS7)安装ORACLE 11g出坑教程及问题总结与解决
    使用 CGImageRef 出现的crash
    leetcode238. 除自身以外数组的乘积
    通过位运算实现求和
    leetcode求1+2+……+n
    leetcode101. 对称二叉树
    leetcode198. 打家劫舍
    leetcode394. 字符串解码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348324.html
Copyright © 2011-2022 走看看