【发布时间】:2025-11-22 11:15:01
【问题描述】:
我需要编写连接了 100 多个客户端的服务器应用程序,这些客户端是嵌入式机器,每 2 分钟通过 tcp 套接字发送一些十六进制数据。之前我在 C# 中成功地编写了相同的代码,但现在我想使用 twisted 在 python 中编写相同的代码。由于我是 python 新手,我面临着某些问题。在 C# 中,我将来自客户端的数据直接存储在字节数组中,然后处理该字节数组。现在我想在 python 中做同样的事情,但我找不到怎么做?下面的代码只显示了 hex->ascii->char。
def rawDataReceived(self, data):
print "hello"
print data
我的问题如何将此数据转换为字节数组或直接将数据捕获为字节? 例如,客户端想要发送“w”字母,它将发送服务器 77 作为 1 个字节。我当前的代码显示 w 但如何将其转换为字节数组,例如 bytes[] array[0] = 0x77。
【问题讨论】:
-
您只是想获取每个字节的数值?或者尝试构建一个 hexlified 字符串之类的?
-
客户端将发送服务器 777777,我想将服务器应用程序编码为 byte[] araray = {0x77, 0x77, 0x77}。
-
好吧,
byte[]不是 Python 类型,但bytearray非常接近您要查找的内容。此外,{}用于 Python 中的(无序)集合,而不是(有序)序列。但我认为我的答案正是您想要的。 -
请记住,“十六进制”只是字节的表示。 Python 内置字符串类型 (
str) 是一个字节序列。使用字符串调用 dataReceived(/rawDataReceived) - 即使用字节。你已经有了你正在寻找的字节——真正的问题是你想用它们做什么。