将从 socket.recv (字节)接收到的数据转换为 ironpython 中的布尔值
Convert data received from a socket.recv (bytes) to a boolean value in ironpython
我正在使用 python 脚本作为 TCP 客户端。有一次它从服务器接收到应该是 bool 的返回值。当我第一次编写此代码并在使用常规 python 安装的机器上对其进行测试时,我能够使用结构模块中的以下代码将接收到的数据解压缩为 bool
data = socket.recv(BUFFER_SIZE)
result = struct.unpack("?", data)[0]
if not result:
#do stuff here
我目前需要在仅使用铁的环境中执行相同的任务python。当我尝试 运行 代码时,我得到以下信息:
ImportError: No module named struct
经过一些挖掘后,铁 python 中似乎不存在常规 python 中的结构模块(我相信存在结构模块,但它用于与 c/c++ 结构)
如何从 TCP socket.recv 获取数据并将其从实际接收到的字节格式转换为我需要的 bool 类型 python?
经过更多挖掘后,我遇到了 this post,它询问有关将字节字符串转换为 int 的问题。
我发现 this answer 中提供的解决方案避免了导入任何模块并且工作得很好,我需要执行额外的 bool 转换,所以我的最终结果如下所示:
data = sock.recv(BUFFER_SIZE)
result = bool(int(data.encode('hex'), 16))
我正在使用 python 脚本作为 TCP 客户端。有一次它从服务器接收到应该是 bool 的返回值。当我第一次编写此代码并在使用常规 python 安装的机器上对其进行测试时,我能够使用结构模块中的以下代码将接收到的数据解压缩为 bool
data = socket.recv(BUFFER_SIZE)
result = struct.unpack("?", data)[0]
if not result:
#do stuff here
我目前需要在仅使用铁的环境中执行相同的任务python。当我尝试 运行 代码时,我得到以下信息:
ImportError: No module named struct
经过一些挖掘后,铁 python 中似乎不存在常规 python 中的结构模块(我相信存在结构模块,但它用于与 c/c++ 结构)
如何从 TCP socket.recv 获取数据并将其从实际接收到的字节格式转换为我需要的 bool 类型 python?
经过更多挖掘后,我遇到了 this post,它询问有关将字节字符串转换为 int 的问题。
我发现 this answer 中提供的解决方案避免了导入任何模块并且工作得很好,我需要执行额外的 bool 转换,所以我的最终结果如下所示:
data = sock.recv(BUFFER_SIZE)
result = bool(int(data.encode('hex'), 16))