Python TCP socket,解析hex和字符串。

该博客展示了如何使用Python的socket库创建一个TCP服务器,它能识别接收到的数据编码,并根据需求以十六进制或原始格式显示数据。通过chardet库检测数据编码,支持对接收到的Hex数据进行解码展示。
摘要由CSDN通过智能技术生成
#!/usr/bin/env python
#coding:utf-8

from socket import *
import chardet

def shuncomdacode(data):
    """ 识别data的编码格式 """
    result = chardet.detect(data)
    print(result['encoding'])
    return (result['encoding'])

def connetSocket(host,port,decode_hex):
    BUFSIZE = 1024  # 字节,1024个字节
    ADDR = (host, port)
    tcpSerSocket = socket(AF_INET, SOCK_STREAM)
    tcpSerSocket.bind(ADDR)
    tcpSerSocket.listen(5)   # 最多可以有5个连接同时进入
    tcpCliSock, addr = tcpSerSocket.accept()
    print('...connected from:', addr)
    while True:
        data = tcpCliSock.recv(BUFSIZE)
        if not data:
            break
        if decode_hex == 'hex':
            rec_data = ''
            for i in range(0, len(data)):
                rec_data = rec_data + '{:02X}'.format(data[i]) + ' '
            recv_data = rec_data
            print(recv_data)
        else:
            data_type = shuncomdacode(data)
            recv_data = data.decode(data_type)
            print(recv_data)


if __name__ == "__main__":
    HOST = '0.0.0.0'   # ip地址
    PORT = 9091        # 端口
    decode_hex = 'hex' # 接收数据格式hex,还是字符串。
    connetSocket(HOST,PORT,decode_hex)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值