Strange message error in socket.sendto() exception
Python 3.2 (r32:88445, Mar 25 2011, 19:28:28) [GCC 4.5.2] on linux2
import socket s = socket.socket() print(s.sendto.__doc__) sendto(data[, flags], address) -> count ... s.sendto(b'data', ('localhost', 3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> socket.error: [Errno 32] Broken pipe
This is ok, I expected this. However, note what happens if I send unicode:
s.sendto('data', ('localhost', 3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sendto() takes exactly 3 arguments (2 given)
An error regarding the argument quantity? what? Furthermore, where this message comes from? I tried to find, but the only hint I get is that it could come from "./Modules/_ctypes/_ctypes.c"... are we using ctypes to access socket methods? it's strange, because "sendto" is defined in socketmodule.c. Ideas? Thanks! -- . Facundo Blog: http://www.taniquetil.com.ar/plog/ PyAr: http://www.python.org/ar/
On Sat, 20 Aug 2011 07:58:13 -0300 Facundo Batista <facundobatista@gmail.com> wrote:
This is ok, I expected this. However, note what happens if I send unicode:
s.sendto('data', ('localhost', 3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sendto() takes exactly 3 arguments (2 given)
An error regarding the argument quantity? what?
Here I get (3.2.2, 3.3):
s.sendto('data', ('localhost', 3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' does not support the buffer interface
Facundo Batista <facundobatista <at> gmail.com> writes:
An error regarding the argument quantity? what?
Ideas? Thanks!
I think this is the same as http://bugs.python.org/issue5421 tl;dr : fixed in recent versions. Regards, Vinay Sajip
participants (3)
-
Antoine Pitrou -
Facundo Batista -
Vinay Sajip