# 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服务器进行远程升级的更多相关文章

  1. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  2. 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级

    目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...

  3. 一小时学会用Python Socket 开发可并发的FTP服务器!!

    socket是什么 什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求 ...

  4. python socket 实现的简单http服务器

    预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器   废话 ...

  5. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  6. Python Socket 网络编程

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  7. Python Socket,How to Create Socket Cilent? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  8. 可扩展多线程异步Socket服务器框架EMTASS 2.0 续

    转载自Csdn:http://blog.csdn.net/hulihui/article/details/3158613 (原创文章,转载请注明来源:http://blog.csdn.net/huli ...

  9. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

随机推荐

  1. spring.net AOP通知类型

    上篇介绍了spring.net AOP的基本实现,其中有说到通知类型,首先在这里补充解释一下.最后出一个异常通知的实例,因为他的实现和别的通知有些不一样. 1.拦截环绕通知:在Spring中最基础的通 ...

  2. Git命令行连Github与TortoiseGit 连Github区别

    如果是用git 通过命令行的方式连接github,那么只需要通过命令 $ ssh-keygen -t rsa -C "your_email@youremail.com" 生成rsa ...

  3. SESSION会话技术

    以下对session会话技术详解: 要了解点http协议理解更佳--->http请求头和http相应头 在session_start的时候,浏览器会向服务器发出请求 在请求的同时,如果是第一次a ...

  4. andoid x项目的优化 1

    通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的,一般来说,一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其 ...

  5. MongoDB自学笔记1----1.1 NoSQL是什么?

    第一章 走进MongoDB 1.1NoSQL是什么?       1.1.1NoSQL简介        对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...

  6. 本地通过Eclipse链接Hadoop操作Mysql数据库问题小结

    前一段时间,在上一篇博文中描述了自己抽时间在构建的完全分布式Hadoop环境过程中遇到的一些问题以及构建成功后,通过Eclipse操作HDFS的时候遇到的一些问题,最近又想进一步学习学习Hadoop操 ...

  7. C语言之自增和自减运算符

    一 自增和自减 自增(++):就是给自己的值再加1 自减(--):就是给自己的值减1 tips: ++(--)可以放在前面,也可以放在后面,效果都是一样,都是会给自身+1(-1) 前缀++(--):会 ...

  8. NET仿微信Oauth2.0

    这个文章先说一说Oauth2.0的原理,再到应用场景,最后才是代码实现,这样才学会最终的思想,并在应用场景使用,所谓实践出真理. 1,Oauth2.0的原理 OAuth是一个关于授权(authoriz ...

  9. 微型orm框架--dapper的简单使用

    1.安装 首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动.如下图: 2 数据库表 脚本 ; -- -------------------------- ...

  10. HDU 4777 Rabbit Kingdom

    素因子分解,树状数组.$ACM/ICPC$ $2013$杭州区域赛$H$题. 首先需要处理出数字$a[i]$左边最远到$L[i]$,右边最远到$R[i]$区间内所有数字都与$a[i]$互质. 那么对于 ...