[100分] Python Socket 问题 求高手
一个小的C/S程序,用Socket连接的!我的客户端是Python写的,但是服务器是C++的
服务器向客户端发了一个结构体的内存块过去,但是Python的Socket.recv()返回的是一个字符串,
请问:
Python是如何将C++的结构体转成字符串的?
我又应该怎样解析这个字符串?
[解决办法]
返回的是bytes,按字节数(切片)就是
python也有struct,但最小单位是字节
[解决办法]
通常通信中的数据传输需要进行编码和解码操作,即使都是C/C++写的代码也不要用类型强制转换而得到发送端的数据对象,这样带来很多问题,比如可移植性。
编码和解码其实就是应用层协议,知道如何编码的同时,也就知道了如何解码。
[解决办法]
可以用structs模块unpack
通常更好的方式是双方约定采用json进行编解码