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/

Responder a