树莓派接收网络数据(Hex进制)解析

#!/usr/bin/python
#-*- coding:utf-8 -*-
import socket
import threading
import binascii
import string
import struct
e=[0]
a=[0xff,0xa0,0x11,0x22,0x0d]
class ThreadedServer(object):
    def __init__(self,host,port):
        self.host=host
        self.port=port
        self.sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        self.sock.bind((self.host,self.port))

    def listen(self):
        self.sock.listen(5)
        while True:
            client,address=self.sock.accept()
            client.settimeout(60)
            threading.Thread(target=self.listenToClient,args=(client,address)).start()
    def listenToClient(self,client,address):
        size=1024
        while True:
            try:
                data=client.recv(size)
                if data:
                    hexstr=''
                    a[3]=0x99
                    response=struct.pack("%dB"%(len(a)),*a)
                    client.send(response)
                    print "收到来自",address,"长度为",len(data),"的消息"
                    for i in data:
                        hhex='%02x'%ord(i)
                        hexstr +=hhex+' '
                       # print('%#x' %ord(i))
                    print(hexstr)
                    time.sleep(1)
                else:
                    raise error('Client disconnected')
            except:
                client.close()
                return False
if __name__ == "__main__":
    while True:
        port_num=8888
        try:
            port_num=int(port_num)
            break
        except ValueError:
            pass
    ThreadedServer('192.168.1.111',port_num).listen()

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值