使用python实现tcp自动重连
发布时间:2020-05-24 12:59:23 所属栏目:Python 来源:互联网
导读:操作系统:CentOS6.9_x64python语言版本:2.7.13问题描述现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。
|
操作系统: CentOS 6.9_x64 python语言版本: 2.7.13 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。 测试服务器示例代码: https://github.com/mike-zhang/pyExamples/blob/master/socketRelate/tcpServer1_multithread.py 解决方案
'''
tcp client with reconnect
E-Mail : Mike_Zhang@live.com
'''
#! /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 "rnsocket error,do reconnect "
time.sleep(3)
sockLocal = doConnect(host,port)
except :
print 'rnother error occur '
time.sleep(3)
time.sleep(1)
if __name__ == "__main__" :
main()
运行效果: (py27env) [root@local t1]# python tcpClient1_reconnect.py 127.0.0.1 12345 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 讨论 这里只是个简单的示例代码,实现了python的tcp自动重连。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
