python之TCP recv()接收数据长度为0表示远端socket已close

概述

本文证明当远端socket close后,本地recv()返回数据的长度是0

服务器代码:python之TCP服务器(1.1版)

客户端代码

#coding=utf-8
import socket
import time
s = socket.socket()
s.connect(('127.0.0.1', 9999))
#需要接收服务器发来的数据,没有此行,服务器端会报错
data=s.recv(1024)
print('来自server的消息:',data.decode('utf-8'))
time.sleep(3)
s.close()

休眠3秒后执行close(),服务器端会显示如下:

接收数据长度:0

如果服务器端先close,客户端的recv()返回的数据长度也是0


原文出处:/show_1EF30VlKWoVx.html