使用python实现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 "\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自动重连。
相关推荐
-
python实现简单的TCP代理服务器
本文实例讲述了python实现简单的TCP代理服务器的方法,分享给大家供大家参考. 具体实现代码如下: # -*- coding: utf-8 -*- ''' filename:rtcp.py @desc: 利用python的socket端口转发,用于远程维护 如果连接不到远程,会sleep 36s,最多尝试200(即两小时) @usage: ./rtcp.py stream1 stream2 stream为:l:port或c:host:port l:port表示监听指定的本地端口 c:host
-
Python采用socket模拟TCP通讯的实现方法
本文实例讲述了Python采用socket模拟TCP通讯的实现方法.分享给大家供大家参考.具体实现方法如下: 对于TCP server端的创建而言,分为如下几个步骤: 创建socket对象(socket):其中两个参数分别为Address Family(如AF_INET为IPV4,AF_INET6为IPV6,AF_UNIX为UNIX域协议族).socket类型(如SOCK_STREAM为TCP,SOCK_DGRAM为UDP). 绑定服务器地址(bind):参数为服务器地址二元组. 监听(list
-
python实现TCP服务器端与客户端的方法详解
本文实例讲述了python实现TCP服务器端与客户端的方法.分享给大家供大家参考.具体如下: TCP服务器程序(tsTserv.py): from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.liste
-
python检测远程服务器tcp端口的方法
本文实例讲述了python检测远程服务器tcp端口的方法.分享给大家供大家参考.具体如下: python检测远程服务器tcp端口的代码,这段代码可以用来做服务器监控实用 #!/usr/bin/env python #coding:utf-8 #filename:tcp.py ''' author: gavingeng date: 2011-12-14 09:35:59 ''' import socket import sys NORMAL=0 ERROR=1 TIMEOUT=5 def ping
-
用Python实现一个简单的多线程TCP服务器的教程
最近看<python核心编程>,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研究了一下如何在server端通过启动不同的线程(进程)来实现每个链接一个线程. 其实python在类的设计上已经考虑到了这一方面的需求,我们只要在自己的server上继承一下SocketServer.BaseRequestHandler就可以了. server端代码如下: #!/usr/bin/env python import SocketServer from t
-
用Python进行TCP网络编程的教程
Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 客户端 大多数连接都是可靠的TCP连接.创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器. 举个例子,当我们在浏览器中访问新浪时,我们自己的计算机就是客户端,浏览器会主动向新浪的服务器发起连接.如果一切顺利,新浪的服务器接受了我们的连接,一个TCP连接就建立起来的,后面的通信就是发送网页内容了. 所
-
使用python实现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@
-
golang之tcp自动重连实现方法
操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连. 测试服务器示例代码: /* tcp server for test */ package main import ( "fmt" "net" "os" "strings" "time" ) func checkError(err err
-
Python实现树莓派WiFi断线自动重连的实例代码
实现 WiFi 断线自动重连.原理是用 Python 监测网络是否断线,如果断线则重启网络服务. 1.Python 代码 autowifi.py,放在 /home/pi 目录下: #!/usr/bin/python import os, time while True: if '192' not in os.popen('ifconfig | grep 192').read(): print '\n****** wifi is down, restart... ******\n' os.syst
-
python爬虫_实现校园网自动重连脚本的教程
一.背景 最近学校校园网不知道是什么情况,总出现掉线的情况.每次掉线都需要我手动打开web浏览器重新进行账号密码输入,重新进行登录.系统的问题我没办法解决,但是可以写一个简单的python脚本用于自动登录校园网.每次掉线后,再打开任意网页就是这个页面. 二.实现代码 #-*- coding:utf-8 -*- __author__ = 'pf' import time import requests class Login: #初始化 def __init__(self): #检测间隔时间,单位
-
python 自动重连wifi windows的方法
如下所示: # coding=utf-8 import urllib2 import urllib from cookielib import CookieJar import os import re import time class ConnectWeb(object): def __init__(self): self.cookiejarinmemory = CookieJar() self.opener = urllib2.build_opener(urllib2.HTTPCookie
-
Python实现鼠标自动在屏幕上随机移动功能
本来想控制鼠标自动移动防止公司电脑自动休眠的策略,然而,实现了并没什么卵用,还是会休眠.但还是分享出来吧.win10的系统. 首先要安装几个第三方的包:pymouse.pyhook.pywin32.pyuserinput.别看代码里值引用pymouse和win32api,如果不把这些都装了,运行时就会报错. 下面来看下代码吧. from pymouse import PyMouse from win32api import GetSystemMetrics import random impor
-
基于Python的一个自动录入表格的小程序
## 帮阿雪写的一个小程序 --------------------------------------------------------------------------------------------------- 上大学的时候,总是会由很多表格需要同学们去搞,尤其是刚开学的那个时候,显然是很烦躁, 阿雪刚开学的时候,作为班干部,表示有时候刚录表不是很熟悉经常会弄到很晚,甚至还会弄错, 这就让我很是触动,所以想帮她搞一搞,顺便增强一下我们的友谊/hhhhhh ------------
-
用python对excel查重
最近媳妇工作上遇到一个重复性劳动,excel表格查重,重复的标记起来,问我能不能写个程序让它自动查重标记 必须安排 第一次正儿八经写python,边上网查资料,边写 终于成功了 在此记录一下 首先安装xlwings库 pip install xlwings 写代码 import xlwings as xw # 输入表名 title = input() # 指定不显示地打开Excel,读取Excel文件 app = xw.App(visible=False, add_book=False) wb
-
Python PaddleNLP实现自动生成虎年藏头诗
目录 一. 数据处理 1.paddlenlp升级 2.提取诗头 3.生成词表 4.定义dataset 二.定义模型并训练 1.模型定义 2.模型训练 3.模型保存 三.生成藏头诗 总结 一. 数据处理 本项目中利用古诗数据集作为训练集,编码器接收古诗的每个字的开头,解码器利用编码器的信息生成所有的诗句.为了诗句之间的连贯性,编码器同时也在诗头之前加上之前诗句的信息.举例: “白日依山尽,黄河入海流,欲穷千里目,更上一层楼.” 可以生成两个样本: 样本一:编码器输入,“白”:解码器输入,“白日依山
-
Python实现邮件自动下载的示例详解
开始码代码之前,我们先来了解一下三种邮件服务协议: 1.SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议.相当于中转站,将邮件发送到客户端. 2.POP3协议 POP3(Post Office Protocol 3),即邮局协议的第3个版本,是电子邮件的第一个离线协议标准.该协议把邮件下载到本地计算机,不与服务器同步,缺点是更易丢失邮件或多次下载相同的邮件. 3.IMAP协议 IMAP(Internet Mail Access Protoc
随机推荐
- 详解AngularJS中的表达式使用
- linux Shell获取某目录下所有文件夹的名称
- jQuery阻止移动端遮罩层后页面滚动
- Angular发布1.5正式版,专注于向Angular 2的过渡
- vbs AD日志开启脚本nableKerbLog的脚本
- 正则表达式——详细讲解平衡组
- 禁止IIS缓存静态文件的方法(png,js,html等)
- IOS代码笔记之勾选"记住密码"整体button
- python引入导入自定义模块和外部文件的实例
- php对文件夹进行相关操作(遍历、计算大小)
- PHP面向对象精要总结
- 详解Vue组件实现tips的总结
- 详谈Servlet和Filter的区别以及两者在Struts2和Springmvc中的应用
- Python中防止sql注入的方法详解
- LINUX重启MYSQL的命令详解
- 浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
- jQuery插件kinMaxShow扩展效果用法实例
- jQuery获取checkboxlist的value值的方法
- 为什么winwebmail只能开25个用户
- IIS6.0 silverlight网站部署方法