cs_mast
Messages postés24Date d'inscriptiondimanche 17 juin 2001StatutMembreDernière intervention 3 octobre 2006
-
5 janv. 2005 à 05:42
johyn
Messages postés14Date d'inscriptionmardi 26 octobre 2010StatutMembreDernière intervention12 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 :(
Harvester_
Messages postés36Date d'inscriptionvendredi 31 décembre 2004StatutMembreDerniè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 )
cs_Marvin
Messages postés77Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention19 juin 20061 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
cs_mast
Messages postés24Date d'inscriptiondimanche 17 juin 2001StatutMembreDerniè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
johyn
Messages postés14Date d'inscriptionmardi 26 octobre 2010StatutMembreDernière intervention12 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...")