Chat TCP

cs_mast
Messages postés
24
Date d'inscription
dimanche 17 juin 2001
Statut
Membre
Dernière intervention
3 octobre 2006
- 5 janv. 2005 à 05:42
johyn
Messages postés
14
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
12 mars 2012
- 12 mars 2012 à 17:38
J'aimerais savoir s'il existe un tutorial sur les bases d'un chat en
python qui fonctionnerait sous TCP? Je n'ai rien trouvé sur google,
seulement des infos sur le UDP :(



Merci!

- Alex

5 réponses

Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007

5 janv. 2005 à 13:07
J'ai commencé a en faire un.

Tu prend le tres bon client/serveur de Ulala2 avec quelques modif ty arrive aisément.
J'ai fini les modif a 50% tout just
Manque pu qu'a redirigé les messages aux bonnes IP
(J'avoue chu un peu depassé avec la gestions des sockets )
0
cs_Marvin
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
5 janv. 2005 à 14:25
Bon alors tu veu faire un client pour un protocol déja existant ou tu veu te faire ton propre protocole?

Si tu veux utiliser un protocol déja existant, il faut que tu cherche ses spécifications.

Il y en a déja pas mal (irc et msn pour les plus connus).



Harvester_: si t'a besoin d'aide moi je cherche un truc a programmer
parceque la je sais pas quoi faire... N'esite pas a me contacter:
marvin_rouge@hotmail.com



@+
0
cs_mast
Messages postés
24
Date d'inscription
dimanche 17 juin 2001
Statut
Membre
Dernière intervention
3 octobre 2006

5 janv. 2005 à 19:28
J'ai réussi à le faire avec un chapitre du livre "commencer à
programmer avec python", ca fonctionne nickle! Reste plus qu'à y
ajouter quelques fonctions ;) merci à tous

- Alex
0
EtienneMoi
Messages postés
1
Date d'inscription
jeudi 25 septembre 2008
Statut
Membre
Dernière intervention
25 septembre 2008

25 sept. 2008 à 14:46
Salut,

Je cherche à faire la même chose que toi, et je ne dois pas être le seul.

Si par hasard tu repasse par là, pense à partager la solution sur le site.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johyn
Messages postés
14
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
12 mars 2012

12 mars 2012 à 17:38
Moi j'en ai fais un (je donne pas le client...)
Il accepte les connexion(socket)revient de la connexion et envoie a tous les client le message envoyer...:
# -*- coding: utf-8 -*-
import socket
import select
import string
import thread
import sys, time
import traceback

def broadcast_data (sock, message):

global CONNECTION_LIST

for socket in CONNECTION_LIST:
if socket != sock:
socket.send("<<<"+str(message))

def accept_connection():

global CONNECTION_LIST, RECV_BUFFER

try:

while 1:

threadlock.acquire()

try:

sockfd, addr = server_socket.accept()

sockfd.setblocking(0)
CONNECTION_LIST.append(sockfd)
print ("Le client (%s, %s) viens de se connecter..." % addr)
broadcast_data(sockfd, "Le client (%s, %s) viens de se connecter..." % addr)
sockfd.send("Vous venez de vous connectez...")
except:
pass

threadlock.release()

except:

pass

def process_connection():

global CONNECTION_LIST, RECV_BUFFER

try:

while 1:

for sock in CONNECTION_LIST:

threadlock.acquire()

try:

data = sock.recv(RECV_BUFFER)

if data:


if data "q" or data "Q":

broadcast_data(sock, "Le client (%s, %s) viens de se deconnecter..." % sock.getpeername())
print ("Le client (%s, %s) viens de se deconnecter..." % sock.getpeername())
sock.close()
CONNECTION_LIST.remove(sock)

else:

broadcast_data(sock, data)

except:

socket_errorcode = sys.exc_value[0]

if socket_errorcode == 10054:


broadcast_data(sock, "Le client (%s, %s) viens de se deconnecter..." % sock.getpeername())
print ("Le client (%s, %s) viens de se deconnecter..." % sock.getpeername())
sock.close()
CONNECTION_LIST.remove(sock)

else:

pass

threadlock.release()

except:

pass

if __name__ == "__main__":

CONNECTION_LIST = []
RECV_BUFFER =4096
print ("*******TCP/IP Chat client********")
print ("Le serveur vas vous demandez deux informations...")
PORT = int(raw_input("PORT:"))
IP = raw_input("IP:")
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((IP, PORT))
server_socket.listen(5)


server_socket.setblocking(0)

threadlock = thread.allocate_lock()

print ("TCP/IP Chat serveur en cour d'ecoute sur le port et l'ip definis...")

thread.start_new_thread(accept_connection, ())
thread.start_new_thread(process_connection, ())

try:
while 1:
pass
except:
server_socket.close()
0