作者:解琛
时间:2020 年 9 月 3 日

python之tcp自动重连

#! /usr/bin/env python
#-*- coding:utf-8 -*-

import os,sys,time
import socket

def doConnect(host,port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try :
        sock.connect((host,port))
    except :
        pass
    return sock

def main():
    host,port = "127.0.0.1",12345
    print host,port
    sockLocal = doConnect(host,port)

    while True :
        try :
            msg = str(time.time())
            sockLocal.send(msg)
            print "send msg ok : ",msg
            print "recv data :",sockLocal.recv(1024)
        except socket.error :
            print "\r\nsocket error,do reconnect "
            time.sleep(3)
            sockLocal = doConnect(host,port)
        except :
            print '\r\nother error occur '
            time.sleep(3)
        time.sleep(1)

if __name__ == "__main__" :
    main()

运行结果如下。

127.0.0.1 5000
send msg ok :  1498891374.98
recv data : 1498891374.98
send msg ok :  1498891375.98
recv data : 1498891375.98
send msg ok :  1498891376.98
recv data :

socket error,do reconnect
send msg ok :  1498891381.99
recv data : 1498891381.99
send msg ok :  1498891382.99
recv data : 1498891382.99
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐