将包含 string 和 int 对象的列表转换为 bytearray 以进行套接字通信

converting a list including string and int objects to bytearray for socket communication

我正在尝试通过套接字通信将包含整数值和字符串值的列表发送到远程计算机。我尝试将列表转换为字节数组,然后可以使用 socket.send() 发送,但我收到以下错误:

TypeError: 'str' object cannot be interpreted as an integer

有没有办法在不拆分列表的整数和字符串部分的情况下发送此信息?

编辑*: 代码如下所示:

list=[1,"a"]

HOST= '192.168.0.31' # Server IP or Hostname
PORT = 12345 # Pick an open Port (1000+ recommended), must match the server port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.send(list)

来自对这个问题的回答。 Is pickle file of python cross-platform?

由于 pickel 是跨平台兼容的(如果满足某些条件!)您可以将 pickel 数据转储到一台机器的套接字中,然后从另一台机器的套接字中读取。但是您需要保证几件事。如果机器上的 python 版本 运行 相同则更好。并非所有 pickle 格式都是跨平台兼容的,但默认格式 ASCII pickles 是兼容的,请参阅标记的问题以获取有关跨平台 pickle 兼容性的更多信息

编码部分

在服务器中

s.sendall(pickle.dumps(list))

在客户端

list = pickle.loads(rcvd_data)