0

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

“你必须自己编码和解码整数、字符串和文件对象,这样你才能遵守讲义中定义的协议。” [这个协议是指从字节数组中创建段,每个段包含文件大小的 4 字节数组,文件名的 2 字节数组,ID 标志的 1 字节数组,以及一个“有效载荷”字节数组,长度因发送的内容而异。]

在这一点上,我真的不确定。我有需要发送到另一台机器的字节数组,但是我的前两个想法被禁止了。我可以创建字节数组和 UDP 连接(我已经独立测试过这两个连接),但是发送它们让我很吃惊。我的python问题有什么好的解决方案吗?

4

1 回答 1

0

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

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

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

或者,也许您可str​​以首先建立权利(无需通过数字列表)。

于 2013-10-28T15:08:53.893 回答