python3 socket send sendall 区别

和自甴很熟 提交于 2019-12-17 00:14:18

在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) 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!