begin process at 2012 02 08 12:10:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Réseau et Internet

 > 

Général

 > 

chat basique en python


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

chat basique en python

samedi 19 juin 2010 à 20:21:10 | chat basique en python

rezuz

Membre Club
bonjour,
je suis en train d'essayer de programmer un chat en python, principalement dans le but d'apprendre l'utilisation des sockets et de la communication entre différend ordinateur. pour l'instant, donc, mon but et de faire un système de chat rudimentaire gérer avec des threads. J'ai utilisé le livre de Gérard Swinnen avec ses exemple de client/serveur géré par des Threads.

Mon problemme, le voici : avec le code ci-dessous, il me dit bien "connections établie" mais aprés plus rien ne se passe. la fonction raw_input() n'est même pas appelé:
Code Python :
import socket, sys
from threading import Thread

PORT = 139              # changer le port
HOST = "192.168.0.10"   # changer l'adresse, avec votre adresse locale

class ThServeur(Thread):
    """ Thread qui va gerer le serveur"""

    def __init__(self, contact):
        Thread.__init__(self)
        self.s = contact

    def run(self):
        print "ThreadServeur en fonction"

        try:
            self.s.bind(("", PORT))
        except:
            print "connection impossible"
            sys.exit()
        print "connection etablie"

        self.s.listen(2)
        while 1:
            self.s.accept()
            self.s.send("vous ete connecte avec le client")
            while 1:
                EmsgS = raw_input("S> ")
                self.s.send(EmsgS)
                RmsgC = self.s.recv(1024)
                print RmsgC


class ThClient(Thread):
    """ Thread qui va gerer le Client"""

    def __init__(self, contact):
        Thread.__init__(self)
        self.s = contact

    def run(self):
        print "ThreadClient en fonction"

        try:
            self.s.connect((HOST, PORT))
        except:
            print "connection impossible"
            sys.exit()
        print "connection etablie"

        while 1:
            EmsgC = raw_input("C> ")
            self.s.send(EmsgC)
            RmsgS = self.s.recv(1024)
            print RmsgS


Soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)     # définition du socket
Th_S = ThServeur(Soc)
Th_C = ThClient(Soc)
Th_S.start()
Th_C.start()


Le hic, c'est que même le code de Gérard Swinnen ne marche pas cher moi en local : (voir page 292 sur le livre format pdf)
lundi 20 septembre 2010 à 23:18:26 | Re : chat basique en python

Guillamue06

Je comprend pas pourquoi tu t’en merde autant.
Je t'es fait vite fait un serveur et un client bien commenté (j'ai pas vérifié mais ça devrai être bon)


Server :

Code Python :
# j'importe le module
import socket

# je cree la socket TCP
sck = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# je bind la socket
Host = ''
Port = 139
sck.bind((Host,Port))

# je la met en ecoute 
sck.listen()

# jaccepte le client
client, ip = sck.accept()

print "Nouvelle connexion : " + ip

# tant que l'ont est connecte
while (sck.connect):

    # donnee_recu gere les donnees recu (max 1024 octees)
    donnee_recu = sck.recv(1024)

    # Si ont ne reçoi rien on attend afin deviter de faire morfle le processeur
    if not donnee_recu : break
    
    # Sinon j'affiche les donnees recu
    else : print " >>> " + donnee_recu



Client :

Code Python :
# j'importe le module
import socket

# je cree la socket TCP
sck = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# je me connect
Host = '127.0.0.1'
Port = 139
sck.connect((Host,Port))

print "Vous etes connect !"

# boucle pour reste connecte
while (sck.connect):

    # le client ecrit
    donnee_envoi = raw_input(" >>> ")

    # ils envoi les donnees
    sck.send(donnee_envoi)

    # ils affiche (esthetique)
    print " >>> " + donnee_envoi
    


mardi 4 octobre 2011 à 17:42:31 | Re : chat basique en python

begueradj

tu es à la fois gentil et méchant, Guillaume :)
mardi 4 octobre 2011 à 17:52:56 | Re : chat basique en python

begueradj

je l'ai testé, il me dit connexion impossible , ligne 10


Cette discussion est classée dans : self, socket, thread, chat, print


Répondre à ce message

Sujets en rapport avec ce message

heklp serverSocket [ par Harvester_ ] Voila j'ai utliser un script du siteC'est un server socket qui marchait tres bien au debut(source)#!C:\Python23\python.exeimport SocketServerimport sy Appeler une méthode d’objet juste construit / comparaison profonde [ par gaspos ] Bonjour, y a-t-il un moyen d'appeler méthode d'objet juste construit ? <?xml:namespa msn client/serveur python [ par tsic ] 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 ms fenêtre avec client /serveur avec socket. [ par francoisjack ] Bonjour a tous j'ai un problème avec mon pt programme je veux faire une connexion entre deux fenêtres client et serveur avec une connexion via socket urllib2 et interface graphique [ par rezuz ] bonjour à tous. aprés avoir eu de nombreux "problemme" avec les 72 minutes de limitation vidéo de MEGAVIDEO, j'ai décidé de faire un programme qui se Scanner de port [ par iAure5974 ] Salut tout le monde il y a peu de temps j'ai codé un petit scanner de port en python (2.7.2) qui fonctionne plutôt bien mais je le trouve lent (normal ouvrir et modifier un fichier txt python [ par basmaber ] Bonjour, je suis débutante en python et la j essaye de faire un programme qui permet d'ouvrir un fichier txt et comparer les valeur de ce fichier et a taquin 4*4 probleme affichage tkinter [ par fredericfabry ] Bonjour je me suis lance dans la resolution du probleme du taquin (puzzle) de4*4 mon programme donne le resultat mais je ne suis pas content car j'ai setdefault method [ par Jideone ] Salut a tout le monde.. je voudrais savoir s'il est possible de reecrir le code suivant sans la methode "setdefault".. je debute en programmation... Recuperer le contenu d'une Entry (Tkinter) [ par Souslannodenime ] Bonjour J'ai un problème. Je n'arrive pas a recuperer le contenu d'une Entry que j'ai crée dans une autre classe. class Fenetre: def __init__(self


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales