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