You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中通过AF_UNIX套接字发送多组十六进制字符串列表

解决AF_UNIX套接字发送多十六进制字符串列表的问题

嘿,我来帮你搞定这个问题~你的代码里踩了一个小坑:binascii.unhexlify()函数不能直接接收列表作为参数,它只支持单个的字节串(或者字符串)输入。你直接把整个列表传进去,肯定会触发类型错误的。

下面分两种场景给你正确的实现方式:

场景1:逐个转换列表中的每个十六进制字符串

如果需要把列表里的每个十六进制串分别转成二进制数据,之后逐个通过套接字发送,你可以用列表推导式遍历处理:

from binascii import unhexlify

# 原始的十六进制字节串列表
hex_message_list = [b'8501012a1b0ff5ff', b'8501012a1b000ff']

# 遍历列表,对每个元素单独执行十六进制转二进制
binary_messages = [unhexlify(hex_str) for hex_str in hex_message_list]

# 查看转换结果
for i, binary_msg in enumerate(binary_messages):
    print(f"第{i+1}条二进制消息: {binary_msg}")

处理完之后,你就可以遍历binary_messages,把每个二进制数据通过AF_UNIX套接字发送出去。

场景2:先拼接所有十六进制字符串再转二进制

如果需要把所有十六进制内容合并成一个二进制数据发送,那可以先拼接列表里的所有字节串,再执行转换:

from binascii import unhexlify

hex_message_list = [b'8501012a1b0ff5ff', b'8501012a1b000ff']

# 先拼接所有十六进制字节串为一个大的字节串
combined_hex = b''.join(hex_message_list)
# 再将拼接后的十六进制串转成二进制
combined_binary = unhexlify(combined_hex)

print(f"合并后的二进制数据: {combined_binary}")

这样得到的combined_binary就是一个完整的二进制字节串,直接发送给AF_UNIX套接字即可。

内容的提问来源于stack exchange,提问作者srilalitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:15:52