python3 socket send sendall 区别

本文详细解析了Python socket编程中send与sendall两个函数的区别。send可能因缓冲区限制无法一次性发送所有数据,需循环调用;而sendall确保数据完全发送,失败则抛出异常。通过实例演示了如何使用这两个函数。
部署运行你感兴趣的模型镜像

在python socket编程中,有两个发送TCP的函数,send()与sendall(),区别如下:

socket.send(string[, flags])  发送TCP数据,返回发送的字节大小。这个字节长度可能少于实际要发送的数据的长度。因为socket缓冲区容量有限,这个函数执行一次,并不一定能发送完给定的数据,可能需要重复多次才能发送完成。

示例:

data = "something you want to send"
len = 0
while True: 
  len = s.send(data[len:]) 
  if not len: 
    break

上边例子,循环发送数据,直到数据全部发送完毕,则跳出循环,

socket.sendall(string[, flags])   发送完整的TCP数据,成功返回None,失败抛出异常

示例:

data = "something you want to send"
  
s.sendall(data) 

 

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值