# 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. 3分钟教你做一个iphone手机浏览器

    3分钟教你做一个iphone手机浏览器 第一步:新建一个Single View工程: 第二步:新建好工程,关闭arc. 第三步:拖放一个Text Field 一个UIButton 和一个 UIWebV ...

  2. PL/SQL Developer实现双击table表名查询

    双击table默认为Expand/Collapse 展开/折叠 有时需快速查看该表数据,如果写select * from tab会显得麻烦, 我们可实现双击table来进行快速查询 方法为:Tools ...

  3. IceMx.Mvc 我的js MVC 框架七、完善植物大战僵尸(增加阳光的消费和获得)

    话不多说,先上图 这次增加了阳光的消费和获得,增加了阳光的点击动画 重新排布了布局 有兴趣的话就研究下吧. 上一篇有朋友说让我把项目放到github上面维护,本人没用过这个,肯请朋友们帮小弟科普一下放 ...

  4. javascript继承的写法

    原文链接:http://js8.in/698.html. 构造函数继承: 第一种方法是使用prototype属性: 这里也可以直接Child.prototype=new P();考虑到P构造函数的参数 ...

  5. CLR_Via_C#事件

    CLR_Via_C#学习笔记之事件   一:首先我先引用网上别人对事件的一些说明,然后将会通过一个事例进行对事件的演示: EventArgs是包含事件数据的类的基类,用于传递事件的细节.EventHa ...

  6. [每日一题] OCP1z0-047 :2013-07-19 Rules of Precedence――括号的使用

    这道题目的意思是你的公司决定给所有呆到5年或5年以上的所有员工每个月加50美元,然后算出总的年薪.每个月薪水:salary,每个月加到:salary+50,总的年薪: (salary+50)*12. ...

  7. 下载编译Chrome详细步骤

    文章来源:http://blog.csdn.net/allendale/article/details/9262833 参考:http://dev.chromium.org/developers/ho ...

  8. [Go语言学习]之一:搭建单元测试环境

    最近开始正式的学习Go语言,奉行我学习一项新技术的步骤和原则( 笔记 + 单元测试 + demo ).首先学习了开发环境的配置,并立即搭建了单元测试的环境,这样可以一边写笔记,一边进行测试和学习,从而 ...

  9. [ios2]苹果iOS 5限制应用本地存储问题 【转】

    苹果 iOS 5 系统增加了一个新的机制——在设备容量空间不足的情况下自动清除高速缓存文件或临时目录的内容.这意味着,如果你设备的容量快到极限了,应用存储的很多离线内容,包括文章.杂志.图书.漫画以及 ...

  10. Kattis - Fenwick Tree(树状数组区间更新单点求值)

    Fenwick Tree Input The first line of input contains two integers NN, QQ, where 1≤N≤50000001≤N≤500000 ...