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