python tcp客户端自动重连_python之tcp自动重连

操作系统: CentOS 6.9_x64

python语言版本: 2.7.13

问题描述

现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。

测试服务器示例代码:

解决方案

'''

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 "\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()

运行效果:

(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自动重连。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值