У меня есть небольшой HTTP-сервер, написанный с использованием gevent, который принимает входящие соединения и отправляет обратно данные с помощью отдельной консоли. Когда (локальный) клиент умирает на стороне сервера пишет клиенту удается, несмотря на сокет, находясь в состоянии 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)
Является ли мое ожидание неправильным? Если нет, что здесь может быть неправильным?