#!/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)
Python TCP socket,解析hex和字符串。
最新推荐文章于 2024-02-21 19:37:06 发布
该博客展示了如何使用Python的socket库创建一个TCP服务器,它能识别接收到的数据编码,并根据需求以十六进制或原始格式显示数据。通过chardet库检测数据编码,支持对接收到的Hex数据进行解码展示。
摘要由CSDN通过智能技术生成