python - 在 python 中“重新创建”原始 256 字节 UDP 帧的最佳方法?
问题描述
我不太确定在 python 中重新创建 UDP 帧的最佳方法是什么……我想到的一件事是使用__init__
方法创建类,而另一种方法就是从字面上创建一个字典。基本上框架被分成5块:
前 4 个字节 (0-3) 用于标题描述。
接下来的 32 个字节 (4-35) 用于公共数据。
接下来的 16 个字节 (36-51) 都是空的。
接下来的 4 个字节(52-55)用于描述有效载荷。
最后 200 个字节用于有效负载。
前 4 部分(标题、通用、16 字节空、有效负载描述)都是从一堆其他文件中解析出来的,而有效负载在int
.
逐个重新创建框架的最佳方法是什么?以下片段是第一个想法:
class common:
def __init__(self, par1, par2):
self.par1 = par1
self.par2 = par2
class header:
def __init__(self, par1, par2):
self.par1 = par1
self.par2 = par2
class empty:
def __init__(self):
self.par1 = 16*[[0]]
class description:
def __init__(self, par1, par2):
self.par1 = par1
self.par2 = par2
class udp_frame:
def __init__(self, payload, h_par_1, h_par_2, c_par_1, c_par_2, d_par_1, d_par_2,):
self.payload = payload
self.header = header(h_par_1, h_par_2)
self.common = common(c_par_1, c_par_2)
self.empty = empty()
self.description = description(d_par_1, d_par_2)
def create_frame(self):
temp = [self.header.par1,
self.header.par2,
self.common.par1,
self.common.par2,
self.empty.par1,
self.description.par1,
self.description.par2,
self.payload
]
while len(temp) < 256:
temp.extend(0)
return bytearray(temp)
还有其他更吸引眼球/高效/标准化的方式来做这种事情吗?
解决方案
推荐阅读
- jquery - jQuery 脚本在现场运行失败,但正在暂存。无法确定原因
- python - 让 mod-wsgi 运行使用 python3 编写的应用程序时出现问题
- mod-rewrite - 强制 RewriteRule 结束 htaccess 文件中的处理/循环
- json - 如何使用 get_json_object 从 json 字符串中检索多个 json 字段
- sql - 如何在没有子查询的情况下做到这一点?
- pandas - Python:如何在类外使用构建在类内的数据框?
- php - 错误用户在 Heroku 上上传文件但不是本地文件
- flutter - 寻找有关实施状态以从 ListView 添加/删除的建议
- reactjs - TypeError: Object(...) is not a function with "useCallBack" ,在 React 版本 16.13.1
- javascript - JavaScript createElement polyline 和 svg 正确