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#
然后自动关闭连接