【发布时间】:2020-09-16 15:17:47
【问题描述】:
我正在尝试在 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() 函数中包含消息长度以使服务器满意?
【问题讨论】:
-
你有证据表明服务器不开心吗?
-
1)
send系统调用确实NOT 发送消息的长度,该长度仅用于因为内核需要知道要发送的数据的长度。 2)Python的sendsockets方法是send系统调用的更高级别版本,由于可以通过send发送的python对象已经有长度(可以通过len()检索),所以不需要指定它。 - Python 函数将在后台执行适当的send系统调用,为您添加长度。 3)“让服务器开心”并不意味着什么。如果遇到问题,请出示代码。 -
@MarcoBonelli 感谢您的解释。
标签: c python-3.x sockets ssl openssl