elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:15  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [Python] Salas de chat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Salas de chat  (Leído 863 veces)
WaAYa HaCK

Desconectado Desconectado

Mensajes: 262


import ehn / #include <ehn.h>


Ver Perfil
[Python] Salas de chat
« en: 2 Agosto 2011, 03:54 »

Hola!
Estoy haciendo un sistema de salas de chat en Python y no avanzo  :(
Tengo un script que (en teoría) recibe los mensajes enviados por un usuario y los reenvía a todos los usuarios de la sala.
También tengo un script cliente.

Código
#!/usr/bin/env python
# -*- coding: cp1252 -*-
import socket, sys
print "### --- * --- Servidor del PyXat activat --- * --- ###"
print "\n\n\n"
 
print "Creant objecte connector - socket..."
try:
   serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except IOError:
   print "Error: No s'ha pogut crear l'objecte principal socket!"
   sys.exit(1)
print "Objecte connector - socket principal creat ... OK"
 
print "Fixant objecte connector - socket..."
try:
   serv.bind(("localhost", 600))
except socket.error:
   print "Error: No s'ha pogut fixar l'objecte principal socket!"
   sys.exit(1)
print "Objecte connector - socket principal fixat ... OK"
 
try:
   llist = int(input('Quantes connexions accepto? '))
except ValueError:
   print 'Indica un número!'
   sys.exit(1)
print 'Ok, creant ' , llist , ' espais de connexió...'
serv.listen(llist)
print llist , 'espais de connexió creats al xat   ... OK'
 
print "Creant sistema de connexió..."
def conn():
   enviar = socket.socket()
   sv, addr = serv.accept()
   con = socket.socket()
   print addr , "s'ha connectat!"
   host = addr[0]
   port = addr[1]
   while True:
       msg = sv.recv(1024)
       enviar.connect((host, port))
       enviar.send(msg)
       print msg
print "Iniciant sistema de connexió..."
conn()
 

Y el script cliente:

Código
#!/usr/bin/env python
# -*- coding: cp1252 -*-
 
import socket
print "Benvingut al PyXat!"
nick = raw_input("Escriu el teu nick: ")
sala = raw_input("Escriu la direcció d'una sala: ")
c = socket.socket()
c.connect((sala, 600))
while 1:
   dic = raw_input("> ")
   c.send(nick)
   c.send(dic)
 

Y no me funciona (normal en mí  :P).

He probado también a usar dos sockets a la vez: uno para enviar y otro para recibir. En el script servidor, la lista addr consta de la dirección IP y de un puerto; he probado a usar addr[0] como dirección de conexión y addr[1] como puerto, pero no funciona. También he intentado añadir la lista addr a otra lista e iterar sobre cada elemento de ella con un for, pero no tengo muy claro cómo hacerlo.

Agradecería una mano en esto.

Saludos!


En línea



Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Salas de chat
« Respuesta #1 en: 2 Agosto 2011, 14:22 »

Sugerencia ;) ...
http://twistedmatrix.com/trac/

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

WaAYa HaCK

Desconectado Desconectado

Mensajes: 262


import ehn / #include <ehn.h>


Ver Perfil
Re: [Python] Salas de chat
« Respuesta #2 en: 5 Agosto 2011, 05:08 »

Perdón por tardar tanto, es que estoy de vacaciones.
Voy a mirar lo del Twisted, a ver si me aclaro.

Por curiosidad: qué he hecho mal en mi script? Hay forma de arreglarlo?

Gracias!
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines