[Python-es] consultas sobre sockets

mauricio rodriguez rodriguez.mauricio55 en gmail.com
Dom Sep 2 19:13:45 CEST 2012


para acedera un servicio detras de un roter debes hacer NAT de lo contrario
es posible que  no acedas ...

Luego en tu código del servidor no indiques la ip :

# configuración del servidor:
> ip = " "
> puerto = 2000
> # Se prepara el servidor
> .................


Cuéntanos que tal

El 2 de septiembre de 2012 13:56, Miguel Barraza <
correo en miguelbarraza.com.ar> escribió:

> **
> hola, tengo unas duditas sobre sockets, ahora que ya tengo la aplicación
> lista para las primeras pruebas, dejo de probarlo en la intranet y le
> coloco mi ip pública para verificar desde internet y me tira este eror:
>
>     return getattr(self._sock,name)(*args)
> error: [Errno 10049] La dirección solicitada no es válida en este contexto
>
> mi consulta es: es por algún parámetro que estoy poniendo mal?
> tengo que utilizar algúna clase especial para manejar bien los sockets?.
> o puede ser por algún problema de mi red...que calculo que no, aunque
> estoy detrás de un router yo que sepa no está blockeando ningún puerto y
> tengo acceso libre a internet. no estoy detrás de un proxi.
>
> el código que utilizo es el siguiente:
>
> import socket, sqlite3, client
> from threading import Thread
>
> # configuración del servidor:
> ip = "190.179.12.21"
> puerto = 2000
> # Se prepara el servidor
> server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> server.bind((ip, puerto))
> server.listen(5)
> print "Esperando clientes..."
>
> # bucle para atender clientes
> while 1:
>     # Se espera a un cliente
>     socket_cliente, datos_cliente = server.accept()
>     # Se escribe su informacion
>     print "conectado "+str(datos_cliente)
>     # Se crea la clase con el hilo y se arranca.
>     hilo = client.client(socket_cliente, datos_cliente)
>     hilo.start()
>
> utilizándolo en intranet, dejando la variable ip bacía, funciona
> perfectamente. ahora cuando pongo la ip pública ya no funciona. me tira el
> error antes mensionado.
> y aprovechando este hilo de sockets, consulto otra cosita mas: cuando
> levanto datos de la base de datos y envío, cuando encuentra acentos tira un
> error python, imaginé que es por la codificación.
> probé de esta forma: antes de mandar el texto lo codifico en utf8:
> texto.encode('utf8')
> y almenos ya no tira error pero en lo que recibe el cliente no muestra
> acentos en que codificación debo ponerla para que funcione bien con
> sockets?.
> mi idea es mostrar acentos por default, y si alguno configura luego armar
> alguna función que remplase acentos por letras sin acentos).
>
> gracias por todo. un saludo!
>
> atte, Miguel
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120902/58125f95/attachment.html>


Más información sobre la lista de distribución Python-es