python - 通过UDP发送字节数组没有列表或酸洗?

时间:2013-10-28 14:52:22

标签: python udp bytearray

我正在开发一个项目,其中必须使用UDP连接在两台unix机器之间发送任意文件。该项目的主要关键是将数据编码为字节数组并在两台机器之间发送。我最初的计划是取字节数组,从中形成一个列表,然后用pickle和send序列化它们。然而,我的导师今天刚刚告诉我,使用列表和使用pickle序列化并不是解决问题的可接受方案。引用他的话:

“您必须自己对整数,字符串和文件对象进行编码和解码,以便遵守讲义中定义的协议。” [此协议指的是从字节数组中创建段,每个段包含4字节数组用于文件大小,2字节数组用于文件名,1字节数组用于ID标志,以及“有效负载”字节数组长度根据发送的内容而变化。]

此刻我不太确定。我有字节数组,我需要发送到另一台机器,但我的前两个想法是不允许的。我可以创建字节数组和UDP连接(我已经独立测试了这两个连接),但是发送它们会让我感到沮丧。我的python问题有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

Python中的字节数组最好用str(一个简单的字符串)表示。您的工作可能是根据您获得的协议规范创建该字节数组。请注意它是str,然后通过网络功能发送它以访问套接字。

要将整数(字节)列表转换为str,请使用以下命令:

''.join(chr(c) for c in integer_list)

或许你可以在第一时间建立str权利(不通过数字列表)。