1 Star 0 Fork 0

JOHNSON / async-socket

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
当前仓库 Web 页面仅限仓库成员可访问。如需转为公开仓库,需要仓库拥有者 JOHNSON 提交仓库公开申请,我们将尽快为您处理。
克隆/下载
utils.py 1.07 KB
一键复制 编辑 Web IDE 原始数据 按行查看 历史
JOHNSON 提交于 2020-11-08 09:56 . Project Created
import logging # 引入logging模块
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s [line:%(lineno)d] - %(levelname)s: %(message)s')
def structure_reqeust(data_type, data) -> bytes:
"""
构建数据包
:param data_type:
:param data:
:return:
"""
packet = "{type}&|&{len}&|&{data}".format(type=data_type, len=len(data), data=data)
return packet.encode()
def parse_packet(data: bytes, split_text, recv_len):
"""
:param data:
:param split_text:
:param recv_len:
:return:
"""
try:
data_type, data_len, data = data.split(split_text.encode(), 2)
except ValueError as e:
return 'error', 0, b"", 0, True
# 计算信息头数据长度
head_len = (len(split_text) * 2) + len(data_len) + len(data_type)
# 计算剩下的数据 ((数据长度 + 信息头长度) = 数据包总长) - 已经接收的 1024 字节,
# 得到的结果就是该数据包剩下的数据长度
return data_type, data_len, data, ((int(data_len) + head_len) - recv_len), False

评论 ( 0 )

你可以在登录后,发表评论

Python
1
https://gitee.com/J0hNs0N/async-socket.git
git@gitee.com:J0hNs0N/async-socket.git
J0hNs0N
async-socket
async-socket
master

搜索帮助

103111 552b83b3 1850385 103110 ed87a847 1850385