[Python-es] consultas sobre sockets
Miguel Barraza
correo en miguelbarraza.com.ar
Dom Sep 2 18:56:19 CEST 2012
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120902/54575e9c/attachment.html>
Más información sobre la lista de distribución Python-es