首页 > 编程知识 正文

socket通信recv未返回,socket的recv函数

时间:2023-05-04 21:34:41 阅读:167396 作者:2444

另一方面,问题的说明需要发送超过1024字节的消息,但由于recv函数的缓冲区被设置为1024字节,因此(以太网的MTU为1500字节,不能设定得更大)通过循环接收缓冲区的消息

total _ data=b ' ' data=client.recv (1024 ) while data: # )对接收到的数据进行拼接total _ data=data=client.recv 万一消息的末尾正好被切断,程序可能会进入死循环,发送的消息可能会出现end。 于是选择了最初的方案。

二.解决办法

把要发送的消息的长度发送给服务器端,听起来很简单,但其实不太容易。 直接用send发送长度后再发送消息,容易出现包粘贴问题,需要提取标头才能为要发送的消息写入信息,非常麻烦。

之后,考虑密码学中的模的概念,如果每个缓冲区取出1024字节,取出剩下的话,剩下的消息的长度小于1024,不久就意味着后面没有消息了吗?

三.实验结果#客户端发送信息client.sendall(message )服务器端接收信息total_data=bytes ) while True: # )对接收到的数据进行连接,生成data

最后成功打印了客户端发送的长消息。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。