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 <
[email protected]> 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
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a