python socket通信 以16进制的数据进行传递与解析
来源:互联网 发布:网络充330元种苹果树 编辑:程序博客网 时间:2024/06/06 01:38
struct.pack也就是将数据按照二进制的格式进行传输
#!/usr/bin/env python
#coding:utf-8
__author__
=
'ferraborghini'
from
socket
import
*
import
struct
#将16进制数据当做字节流传递
def
dataSwitch(data):
str1
=
''
str2
=
''
while
data:
str1
=
data[
0
:
2
]
s
=
int
(str1,
16
)
str2
+
=
struct.pack(
'B'
,s)
data
=
data[
2
:]
return
str2
if
__name__
=
=
"__main__"
:
HOST
=
'localhost'
PORT
=
21567
BUFSIZE
=
1024
ADDR
=
(HOST,PORT)
tcpCliSock
=
socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while
True
:
data
=
raw_input
(
'>'
)
if
not
data:
break
tcpCliSock.send(dataSwitch(data))
data
=
tcpCliSock.recv(BUFSIZE)
if
not
data:
break
print
data
tcpCliSock.close()
解析报文,这时候读入的其实相当于二进制流,我们要做的就将二进制流转化为16进制就行
#!/usr/bin/env python
#coding:utf-8
from
socket
import
*
from
time
import
ctime
if
__name__
=
=
"__main__"
:
HOST
=
''
#此处为空代表可以绑定所有有效地址
PORT
=
21567
BUFSIZE
=
1024
ADDR
=
(HOST,PORT)
tcpSerSocket
=
socket(AF_INET,SOCK_STREAM)
tcpSerSocket.bind(ADDR)
tcpSerSocket.listen(
5
)
#最多可以有5个连接同时进入
while
True
:
print
'waiting for connection...'
tcpCliSock,addr
=
tcpSerSocket.accept()
print
'...connected from:'
,addr
while
True
:
data
=
tcpCliSock.recv(BUFSIZE)
print
data.encode(
'hex'
)
if
not
data:
break
tcpCliSock.send(
'[%s] %s'
%
(ctime(),data))
# tcpCliSock.close() #如果接收完,就断开的话,下次再发送就会报错,书本上有问题
tcpSerSocket.close()
阅读全文
0 0
- python socket通信 以16进制的数据进行传递与解析
- java-Socket通信,同时进行Json数据的传递
- php之与python进行socket通信
- Flex与java进行socket通信完成以断点续传方式的文件上传
- Flex与java进行socket通信完成以断点续传方式的文件上传
- Java-Socket通信 同时JSON传递与解析
- 使用Python进行socket通信
- 安卓客户端与jsp互相用json进行数据的传递与解析
- 用Python Socket进行简单的电脑间通信
- python的socket通信
- Service 数据传递与通信
- java与c/c++进行socket通信的一些问题
- java与c/c++进行socket通信的一些问题
- Flex的socket与java使用amf3进行通信
- java与c/c++进行socket通信的一些问题
- Flex的socket与java使用amf3进行通信
- vb与php进行socket通信遇到的问题
- Python使用Socket 进行进程间通信
- Android属性动画完全解析(二):ValueAnimator和ObjectAnimator的高级用法
- Java API 写 Hive Orc文件
- (一)Spring-boot 自动配置
- BZOJ3521: [Poi2014]Salad Bar
- 全选、全不选、反选
- python socket通信 以16进制的数据进行传递与解析
- csdn如何转载文章
- linux发送http请求不执行原因 请求头
- 消费者版 Vive Trackers 正式发布,只会与 Steam 1.0 基站适配
- MySql的记录
- git设置过滤忽略的文件或文件夹
- 《探寻linux协议栈》之二:源于skb的一场大联欢
- 实验1 链表的插入和删除
- Dell服务器常用管理命令总结