0
我有一個使用gevent編寫的小型HTTP服務器,它接受傳入連接並使用每個連接的greenlet發回數據。當(本地)的客戶端死機服務器端寫入到客戶端儘管在CLOSE_WAIT狀態下的插座能夠成功:gevent tcp socket已斷開連接但可以發送數據
$ ls -l /proc/21860/fd |grep 22
lrwx------. 1 mathieu mathieu 64 Mar 21 19:55 22 -> socket:[187093]
$ lsof |grep 187093
python 21860 mathieu 22u IPv4 187093 0t0 TCP localhost.localdomain:36072->localhost.localdomain:48908 (CLOSE_WAIT)
現在,我希望我gevent.socket.socket創建的套接字的發送方法失敗,但我沒有得到任何例外!
def send(socket, data):
sent = socket.send(data)
while sent != len(data):
data = data[sent:]
sent = socket.send(data)
我的期望是不正確的?如果不是,這裏可能會出現什麼問題?