[Python-es] duda sobre sockets en python 2.5 y 3.2
Rodrigo Mayorga Vallejos
rmayorgav en gmail.com
Lun Sep 26 20:13:14 CEST 2011
Miguel.
En Python 3.2 el método recv() del objeto socket devuelve un objeto
"bytes"
(http://docs.python.org/py3k/library/socket.html#socket.socket.recv). Ya
no devuelve un objeto "str". Así que, como decimos en Chile, estas
comparando "peras con manzanas".
Para Python 3.2 sería correcto esto:
if recibido == b"quit":
Pero esta línea no funcionaría en Python 2.5 ya que no existe el objeto
bytes.
Si quieres hacer tu código 2.x y 3.x tendrás que hacer ajustes.
Saludos.
On 26/09/2011 12:39 PM, Miguel Barraza wrote:
> hola, aqui probando y probando llegué a una duda muy estraña.
> este código de servidor de sockets lo probé con python 2.5 portable y
> funciona correctamente, lo probé en otra pc con python 2.4 y tube el
> mismo resultado, pero en mi pc con python 3.2 no funciona, se cierra
> automaticamente el interprete y no se porque no me lo quiere correr,
> la sintacsis cambia para python 3.2?. o porque podría ocurrir este
> problema.
> aclaro: utilizo windows xp con python 3.2 instalado, y para pruebas
> tengo el python 2.5 portable.
> código del ejemplo:
> import socket
>
> s = socket.socket()
> s.bind(("localhost", 9999))
> s.listen(1)
>
> sc, addr = s.accept()
>
> while True:
> recibido = sc.recv(1024)
> if recibido == "quit":
> break
> print "Recibido:", recibido
> sc.send(recibido)
>
> print "adios"
>
> sc.close()
> s.close()
> fin del código.
> gracias, saludos.
> 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/20110926/712ba13c/attachment.html>
Más información sobre la lista de distribución Python-es