我正在开发一个 Python 项目,该项目允许与日志进行基本的 TCP 通信。但是正在接收的数据是使用 ab 前缀接收的。
在对其他错误进行了数小时的故障排除后,我归结为这个总是发生的最后一个错误,我似乎无法修复。经过几天的研究,我发现 b 前缀是数据字符串的一部分,每当我尝试使用 print(data.decode()) 或 print(data.decode('utf-8') 我得到错误:
2018-06-21 21:17:38,801 STCP STOPPED DUE TO ERROR ON main.py, main()
Traceback (most recent call last):
File "main.py", line 14, in main
receiver.receive()
File "D:\SecureNetworks\SecureTCP\receiver.py", line 26, in receive
print(data.decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'
Run Code Online (Sandbox Code Playgroud)
服务器在 Python 3.6 上运行,客户端在 Python 2.7 上运行
这是我的服务器代码:
主文件
import logging
import receiver
import config
logger = logging.getLogger(config.log)
hdlr = logging.FileHandler(str(config.log) + '.log')
formatter = logging.Formatter('%(asctime)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.DEBUG) …Run Code Online (Sandbox Code Playgroud) python ×1