[pyar] Sockets, problemirijillo con recv

david weil tenuki en gmail.com
Jue Nov 10 03:27:35 ART 2011


Algunos detalles..

On Wed, Nov 9, 2011 at 15:20, Sebastian Scheib <stackpointerex en gmail.com> wrote:
> Bueno, la solución (esperemos temporal) . Básicamente concatené todo en un
> string y devuelvo todo menos el último. Quise hacerlo con un while var !=
> '\n' pero no me funcionó así que tuve que tocarlo un poco :S
> import socket
> from threading import Thread
> class Cliente(Thread):
>     def __init__(self,socket_cliente,datos_cliente):
>         Thread.__init__(self)
>         self.socket=socket_cliente
>         self.datos=datos_cliente
>
>     def run(self):
>         seguir = True
>         peticion=""
>         while seguir:
>             peticion=self.ingresar_texto()
>             self.socket.send("Esa: "+peticion+"\n")

No estas verificando el valor que devuelve send. Asi que o lo
verificas, o usas sendall() o me explicas porque se puede asumir que
va a enviar todo el buffer que le pasas :-)

>             if peticion=='quit':
>                 seguir=False
>                 self.socket.close()
>
>     def ingresar_texto(self):
>         flag_intro=1
>         ing=""
>         ingreso=""
>         ingresof=""
>         while flag_intro==1:
>             ing = str(self.socket.recv(1))

recv() te deberia devolver un "string". no le veo el sentido a la
llamada explicita a str().

>             if ing!="\n":
>                 ingreso=ingreso+ing
>             else:
>                 flag_intro=0

>                 for i in range (0, len(ingreso)-1): #ARMO ingresof PARA
> SACAR ESE ULTIMO CARACTER.
>                     ingresof=ingresof+ingreso[i]

el for ese quiere hacer esto me parece:
                    ingresof += ingreso[0:-1]

>         return ingresof
>

saluc!

-- 
 There is no dark side of the moon really. Matter of fact it's all dark.



More information about the pyar mailing list