首页 > 解决方案 > python send() 中的消息长度类似于 C 中的 send()

问题描述

我正在尝试在 python 中使用套接字和 ssl 发送数据。服务器是用 C 语言编写的,因此它期望接收:

bytesRx = recv(socket, buffer, sizeof(buffer),0)

所以在 C 中,发送函数是:

send(socket, messsage, length, 0)

我想模仿 send 函数,但在 python 中 send() 函数内没有选项来发送消息的长度。仅发送消息本身。

secure_socket.send(message)

有没有办法在 python send() 函数中包含消息长度以使服务器满意?

标签: cpython-3.xsocketssslopenssl

解决方案


在 Python 中,消息长度是……消息的长度。Python 字符串有长度,而 C 字符串没有。这就是为什么您需要在 C 中单独指定消息和长度,而不是在 Python 中。

如果只想发送消息的前 100 个字节,可以编写:

secure_socket.send(message[:100])

在 Python 中,message[:100]表示前 100 个内容message- 在这种情况下,我假设message是一个字节字符串,所以它表示前 100 个字节。


推荐阅读