从发送数据压缩在python中

2024-04-27 11:44:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一些c++代码翻译成python,python向java服务器发送一些数据。在

原始c++代码如下:

std::string msgstr = "";
msg.SerializeToString(&msgstr);

auto allocSize = msgstr.size() + 1024;
char* data = (char*)malloc(allocSize);

uLong gzlen = msgstr.size() + 1024;

Bytef*pCompressData = (Bytef*)malloc(gzlen);
auto result = CGameZipUtils::gzcompress(/**/);

if(result == 0) {
    int tmp;
    tmp = htonl((int)gzlen);
    memcpy(&data[0], &tmp, 4);
    memcpy(&data[4], pCompressData, gzlen);

    sendData(data,(int)gzlen + 4);
}

现在我在Python中使用了ZLIB和Socket包,到目前为止,我似乎已经压缩了部分,因为Python中的数据长度的输出与C++相同:

^{pr2}$

我现在遇到的问题是我不知道如何发送我从中得到的数据压缩并添加一个数据长度的头,然后将数据发送到我的服务器。在

我需要弄清楚如何编写要发送的数据:

send = "??????"

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((GATE_ADDRESS, GATE_PORT))
client_socket.send(data)
client_socket.close()

如有任何建议,我们将不胜感激,谢谢:)


Tags: 数据代码clientautodatasizesockettmp