python socket服务器进行远程升级
# coding:utf-8
from socket import *
import binascii, linecache, time ServerUrl = "127.0.0.1:900" def SocketServer():
try:
Colon = ServerUrl.find(':')
IP = ServerUrl[0:Colon]
Port = int(ServerUrl[Colon + 1:]) # 建立socket对象
print("serval start: %s" % ServerUrl)
sockobj = socket(AF_INET, SOCK_STREAM)
sockobj.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
# 绑定ip端口
sockobj.bind((IP, Port))
sockobj.listen(5) i = 1
while i < 5770:#升级5660行
connection, address = sockobj.accept()
while 1:
# 读取某一行
def getline(the_file_path, line_number):
if line_number < 1:
return ''
for cur_line_number, line in enumerate(open(the_file_path, 'rU')):
if cur_line_number == line_number - 1:
return line.replace('\n', '\r\n')
return line
return ''
the_line = str(linecache.getline('E:\\1.hex', i)).strip()#需要发送的hex文件
# the_line = str(linecache.getline('E:\\1.hex', i))#需要发送的hex文件
ss = binascii.a2b_hex(the_line)
print(ss)
time.sleep(0.05)
def re(i):
if i <= 4659:#需要升级多少行
# 将前面对齐
if (len(str(i)) == 1):
s = hex(i)
sss = ''
for s1 in s:
if s1 == 'x':
s1 = '000'
sss = (sss + s1)
return (sss[1:])
elif (len(str(i)) == 2):
s = hex(i)
sss = ''
for s1 in s:
if s1 == 'x':
s1 = '00'
sss = (sss + s1)
return(sss[1:])
elif (len(str(i)) == 3):
s = hex(i)
sss = ''
for s1 in s:
if s1 == 'x':
s1 = '0'
sss = (sss + s1)
return(sss)
elif (len(str(i)) == 4):
s = hex(i)
sss = ''
for s1 in s:
if s1 == 'x':
s1 = ''
sss = (sss + s1)
return(sss)
# else:
# s = hex(i)
# sss = ''
# for s1 in s:
# if s1 == 'x':
# s1 = ''
# ss = (sss + s1)
# return(sss[1:])
sre = re(i)
if len(re(i))==3:
sre = '0'+sre
elif len(re(i))==5:
sre = sre[1:]
print('第'+i+'行') connection.send(binascii.a2b_hex(sre)+binascii.a2b_hex('3a')+ss)
# connection.send(binascii.a2b_hex('3a'))
# # connection.send(binascii.a2b_hex('3a'))
# connection.send(ss)
i = i+1
connection.close()
except Exception as ex:
print(ex) SocketServer()
python socket服务器进行远程升级的更多相关文章
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
- 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级
目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...
- 一小时学会用Python Socket 开发可并发的FTP服务器!!
socket是什么 什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求 ...
- python socket 实现的简单http服务器
预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器 废话 ...
- Python Socket 编程——聊天室示例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- Python Socket,How to Create Socket Cilent? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- 可扩展多线程异步Socket服务器框架EMTASS 2.0 续
转载自Csdn:http://blog.csdn.net/hulihui/article/details/3158613 (原创文章,转载请注明来源:http://blog.csdn.net/huli ...
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...
随机推荐
- spring.net AOP通知类型
上篇介绍了spring.net AOP的基本实现,其中有说到通知类型,首先在这里补充解释一下.最后出一个异常通知的实例,因为他的实现和别的通知有些不一样. 1.拦截环绕通知:在Spring中最基础的通 ...
- Git命令行连Github与TortoiseGit 连Github区别
如果是用git 通过命令行的方式连接github,那么只需要通过命令 $ ssh-keygen -t rsa -C "your_email@youremail.com" 生成rsa ...
- SESSION会话技术
以下对session会话技术详解: 要了解点http协议理解更佳--->http请求头和http相应头 在session_start的时候,浏览器会向服务器发出请求 在请求的同时,如果是第一次a ...
- andoid x项目的优化 1
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的,一般来说,一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其 ...
- MongoDB自学笔记1----1.1 NoSQL是什么?
第一章 走进MongoDB 1.1NoSQL是什么? 1.1.1NoSQL简介 对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...
- 本地通过Eclipse链接Hadoop操作Mysql数据库问题小结
前一段时间,在上一篇博文中描述了自己抽时间在构建的完全分布式Hadoop环境过程中遇到的一些问题以及构建成功后,通过Eclipse操作HDFS的时候遇到的一些问题,最近又想进一步学习学习Hadoop操 ...
- C语言之自增和自减运算符
一 自增和自减 自增(++):就是给自己的值再加1 自减(--):就是给自己的值减1 tips: ++(--)可以放在前面,也可以放在后面,效果都是一样,都是会给自身+1(-1) 前缀++(--):会 ...
- NET仿微信Oauth2.0
这个文章先说一说Oauth2.0的原理,再到应用场景,最后才是代码实现,这样才学会最终的思想,并在应用场景使用,所谓实践出真理. 1,Oauth2.0的原理 OAuth是一个关于授权(authoriz ...
- 微型orm框架--dapper的简单使用
1.安装 首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动.如下图: 2 数据库表 脚本 ; -- -------------------------- ...
- HDU 4777 Rabbit Kingdom
素因子分解,树状数组.$ACM/ICPC$ $2013$杭州区域赛$H$题. 首先需要处理出数字$a[i]$左边最远到$L[i]$,右边最远到$R[i]$区间内所有数字都与$a[i]$互质. 那么对于 ...