没有开启keepalive,接收消息会超时

启动客户端脚本后,断开服务端网络

node2:/root/test#cat t23.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.connect(("192.168.137.2",8080))
s.settimeout(17)
print len(c)
time.sleep(60)
s.send(c)
s.recv(999)
s.close()


node2:/root/test#tcpdump -S -i eth1 '((tcp) and  (host 192.168.137.2) and (port 8080) )'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
09:33:34.551888 IP node2.62913 > node1.webcache: Flags [S], seq 248056823, win 14600, options [mss 1460,sackOK,TS val 130729490 ecr 0,nop,wscale 7], length 0
09:33:34.552324 IP node1.webcache > node2.62913: Flags [S.], seq 3419139787, ack 248056824, win 14480, options [mss 1460,sackOK,TS val 3569173 ecr 130729490,nop,wscale 6], length 0
09:33:34.552372 IP node2.62913 > node1.webcache: Flags [.], ack 3419139788, win 115, options [nop,nop,TS val 130729491 ecr 3569173], length 0




09:34:34.613754 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130789552 ecr 3569173], length 1448
09:34:34.613939 IP node2.62913 > node1.webcache: Flags [P.], seq 248058272:248058284, ack 3419139788, win 115, options [nop,nop,TS val 130789552 ecr 3569173], length 12
09:34:34.814523 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130789753 ecr 3569173], length 1448
09:34:35.216869 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130790155 ecr 3569173], length 1448
09:34:36.020818 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130790959 ecr 3569173], length 1448
09:34:37.628674 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130792567 ecr 3569173], length 1448
09:34:40.844360 IP node2.62913 > node1.webcache: Flags [.], seq 248056824:248058272, ack 3419139788, win 115, options [nop,nop,TS val 130795783 ecr 3569173], length 1448


node2:/root/test#time python t23.py 
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
1460
Traceback (most recent call last):
  File "t23.py", line 31, in <module>
    s.recv(999)
socket.timeout: timed out

real	1m17.120s
user	0m0.015s
sys	0m0.026s
原文地址:https://www.cnblogs.com/hzcya1995/p/13348443.html