[Python] sendall su socket no blocking

Marco De Paoli depaolim a gmail.com
Sab 23 Ott 2021 18:37:49 CEST


ciao a tutti,
da alcune prove mi pare che il sendall spedisca effettivamente tutto il
buffer anche su socket che abbiano setblocking(False)

Però non sono sicuro che sia un comportamento sempre garantito su tutte le
piattaforme

La documentazione non si esprime in merito
https://docs.python.org/3/library/socket.html#socket.socket.sendall

Qui si dice che la sendall dovrebbe essere usata solo con socket blocking:
https://stackoverflow.com/questions/6240737/python-socket-sendall-function
(c'è un riferimento dangling a sorgenti evidentemente obsoleti)

Ho visto i sorgenti del branch "main" e mi pare che invece la sendall
spedisca sempre tutto...
https://github.com/python/cpython/blob/main/Modules/socketmodule.c

ad esempio qui
https://github.com/python/cpython/blob/main/Modules/socketmodule.c#L925

Però diciamo che al sabato sera non mi sento abbastanza lucido da dirimere
la questione da solo ;-)

Marco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20211023/8c9bfebd/attachment.html>


Maggiori informazioni sulla lista Python