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
Rejoignez-nous