buenas,
estaba leyendo el libro"python para todos" y me encontré con un ejemplo de sockets que me pareció interesante. el ejercicio constaba de 2 scripts, uno era un cliente y otro un servidor; en el cliente podíamos escribir texto y luego ese texto era mostrado en el servidor. decidí modificarlo un poco para que ambos scripts pudiesen ir alternando la función cliente-servidor, es decir, hacer una especie de chat que permitiese simular una conversación simple del siguiente modo: escribe usuario1, lee usuario2, escribe usuario2, lee usuario1; y así sucesivamente.
dejo los scripts:
k1.py
#uso: python k1.py ip_a_comunicar (se admite 127.0.0.1)
# by blozzter.
import sys, socket
ip = sys.argv[1]
def enviar():
s = socket.socket()
s.connect((ip, 9998)) #se conecta a esa ip
mensaje = raw_input("[>] ")
s.send(mensaje)
if mensaje == "quit":
print 'bye bye'
s.close()
sys.exit()
def recibir():
s = socket.socket()
s.bind(("", 9999))
s.listen(1)
sc, addr = s.accept()
recibido = sc.recv(1024)
if recibido == "quit":
print 'bye bye'
sc.close()
s.close()
sys.exit()
print "Recibido:", recibido
sc.send(recibido)
def cambiar(word):
if word == 'enviar':
word = 'recibir'
elif word == 'recibir':
word = 'enviar'
return word
accion = 'enviar'
while True:
if accion == 'enviar':
enviar()
elif accion == 'recibir':
recibir()
accion = cambiar(accion)
k2.py
#uso: python k2.py ip_a_comunicar (se admite 127.0.0.1)
# by blozzter.
import sys, socket
ip = sys.argv[1]
def enviar():
s = socket.socket()
s.connect((ip, 9999)) #se conecta a esa ip
mensaje = raw_input("[>] ")
s.send(mensaje)
if mensaje == "quit":
print 'bye bye'
s.close()
sys.exit()
def recibir():
s = socket.socket()
s.bind(("", 9998))
s.listen(1)
sc, addr = s.accept()
recibido = sc.recv(1024)
if recibido == "quit":
print 'bye bye'
sc.close()
s.close()
sys.exit()
print "Recibido:", recibido
sc.send(recibido)
def cambiar(word):
if word == 'enviar':
word = 'recibir'
elif word == 'recibir':
word = 'enviar'
return word
accion = 'recibir'
while True:
if accion == 'enviar':
enviar()
elif accion == 'recibir':
recibir()
accion = cambiar(accion)
primero se debe ejecutar el k2.py ya que este comienza con la función que "escucha", y luego ejecutar el k1.py que es el que se conecta y empieza a "hablar", luego se van alternando de modo automático.
saludos.
Ese code anda dando vueltas por todos los foros XD
Yo ando trabajando uno con Python + PHP
Saludos.
You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
Ese code anda dando vueltas por todos los foros XD
Yo ando trabajando uno con Python + PHP
Saludos.
yo nunca lo he visto. al menos no modificado para que las dos partes puedan hablar.