Martin Panter added the comment:

According to strace, Python 3 is calling send(-1, ...):

sendto(-1, "x", 1, 0, NULL, 0)          = -1 EBADF (Bad file descriptor)

A related discrepancy between Python 2 and 3 is how the socket.makefile() 
objects affect the original socket. In Python 2:

>>> f = sock.makefile("wb")
>>> sock.close()  # Should “close” Python’s sock object, but not f
>>> sock.send(b"x")
socket.error: [Errno 9] Bad file descriptor

In Python 3:
>>> sock.send(b"x")  # Actually sent to remote end!
1

----------
nosy: +martin.panter

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13344>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to