为什么send()函数在这种情况下不返回0?

时间:2017-03-24 04:31:11

标签: python-3.x sockets

我写了一个套接字样本,包括服务器和客户端程序。在服务器上,当它接受连接时,它会立即关闭它。在客户端,它将连接到服务器,然后休眠1秒,然后发送服务器的东西。 令我困惑的是为什么send函数不返回0?代码在

之下
Client.py
import socket
import time
clientsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
  clientsocket.connect(("127.0.0.1",8886))
  ret = clientsocket.send(("Hello world").encode('utf-8'))
  time.sleep(1.0)
  print("All send bytes is {}".format(ret))
except socket.error as msg:
  print(msg)


Server.py 
import socket

serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serversocket.bind(("127.0.0.1",8886))
serversocket.listen(5)

while True:
  clientsocket,addr = serversocket.accept()
  clientsocket.shutdown(2)
  clientsocket.close()

发送函数返回11而不是0.建立连接后,我立即关闭它。但客户端成功发送数据。这让我感到困惑

0 个答案:

没有答案