msn client/serveur python

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tsic
    New Member
    • Mar 2008
    • 5

    msn client/serveur python

    Bonjour,
    je suis bloqué ilya preque 2 semaines dans le code suivant. je veut que le client et le serveur envoyent leurs message d'une maniere comme msn. je crois qu'ilya quelque chose à ajouter dans les boucles.

    d'abord code serveur:

    from socket import *
    import socket, sys, threading


    class ThreadClient(th reading.Thread) :
    def __init__(self, conn):
    threading.Threa d.__init__(self )
    self.connexion = conn

    def run(self):

    nom = self.getName()
    while 1:
    msgServeur = raw_input("S> ")
    connexion.send( msgServeur)
    msgClient = self.connexion. recv(1024)
    if msgClient.upper () == "FIN" or msgClient =="":
    break
    message = "%s> %s" % (nom, msgClient)
    print message



    for cle in conn_client:
    if cle != nom:
    conn_client[cle].send(message)

    self.connexion. close()
    del conn_client[nom]
    print "Client %s deconnecte." % nom
    mySocket = socket.socket(s ocket.AF_INET, socket.SOCK_STR EAM)
    try:
    mySocket.bind(( '127.0.0.1', 84))
    except socket.error:
    print "La liaison du socket a l'adresse choisie a echoue."
    sys.exit()
    print "Stand by!!!!"
    mySocket.listen (5)
    conn_client = {}
    while 1:
    connexion, adresse = mySocket.accept ()
    th = ThreadClient(co nnexion)
    th.start()
    it = th.getName()
    conn_client[it] = connexion
    print "Client %s connecte, adresse IP %s, port %s." %\
    (it, adresse[0], adresse[1])
    connexion.send( "Vous etes connecte. Envoyez vos messages.")

    code client.


    # Definition d"un client reseau gerant en parallele l'emission
    # et la reception des messages (utilisation de 2 THREADS).

    host = '127.0.0.1'
    port = 84

    import socket, sys, threading

    class ThreadReception (threading.Thre ad):
    """objet thread gerant la reception des messages"""
    def __init__(self, conn):
    threading.Threa d.__init__(self )
    self.connexion = conn # ref. du socket de connexion

    def run(self):
    while 1:
    message_recu = self.connexion. recv(1024)
    print "*" + message_recu + "*"

    print "Client arrete. Connexion interrompue."
    self.connexion. close()

    class ThreadEmission( threading.Threa d):
    """objet thread gerant l'emission des messages"""
    def __init__(self, conn):
    threading.Threa d.__init__(self )
    self.connexion = conn # ref. du socket de connexion

    def run(self):
    while 1:
    message_emis = raw_input()
    self.connexion. send(message_em is)

    # Programme principal - etablissement de la connexion :
    connexion = socket.socket(s ocket.AF_INET, socket.SOCK_STR EAM)
    try:
    connexion.conne ct((host, port))
    except socket.error:
    print "La connexion a echoue."
    sys.exit()
    print "Connexion etablie avec le serveur."

    # Dialogue avec le serveur : on lance deux threads pour gerer
    # independamment l'emission et la reception des messages :
    th_E = ThreadEmission( connexion)
    th_R = ThreadReception (connexion)
    th_E.start()
    th_R.start()
  • micmast
    New Member
    • Mar 2008
    • 144

    #2
    C'est possible de mettre le code dans tag?

    For those that don't speak french:

    Hey,

    I'm stuck, almost 2 weeks. I want the client and server to send message kinda like msn does it.

    Comment

    Working...