我正在开发一个项目,其中必须使用UDP连接在两台unix机器之间发送任意文件。该项目的主要关键是将数据编码为字节数组并在两台机器之间发送。我最初的计划是取字节数组,从中形成一个列表,然后用pickle和send序列化它们。然而,我的导师今天刚刚告诉我,使用列表和使用pickle序列化并不是解决问题的可接受方案。引用他的话:
“您必须自己对整数,字符串和文件对象进行编码和解码,以便遵守讲义中定义的协议。” [此协议指的是从字节数组中创建段,每个段包含4字节数组用于文件大小,2字节数组用于文件名,1字节数组用于ID标志,以及“有效负载”字节数组长度根据发送的内容而变化。]
此刻我不太确定。我有字节数组,我需要发送到另一台机器,但我的前两个想法是不允许的。我可以创建字节数组和UDP连接(我已经独立测试了这两个连接),但是发送它们会让我感到沮丧。我的python问题有一个很好的解决方案吗?
答案 0 :(得分:0)
Python中的字节数组最好用str
(一个简单的字符串)表示。您的工作可能是根据您获得的协议规范创建该字节数组。请注意它是str
,然后通过网络功能发送它以访问套接字。
要将整数(字节)列表转换为str
,请使用以下命令:
''.join(chr(c) for c in integer_list)
或许你可以在第一时间建立str
权利(不通过数字列表)。