IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

socket et messagerie


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par défaut socket et messagerie
    salut, je suis débutent en python, et je commence a m’intéresser aux réseaux. notamment à la communication Socket. je bosse sous Windows et python3.6. mon projet actuel pour me faire la main en python, est une messagerie instantané avec la librairie Socket.
    je me suis donc attelé a la création d'un client et d'un serveur.
    cependant j'ai 2 problème. quand j'envoi une message du client au serveur le le serveur ne reçois le message qu'au moment ou il en envoi une. alors que j'ai fais un thread pour la réception de message de manière a avoir une communication asynchrone.
    mon 2ème problème est que quand j'envoi un message du serveur au client ce dernier ne reçois rien.

    voila le code du client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    import threading
    import socket
    import os
     
     
    #------------------------------------------------------
    class threadReception(threading.Thread):		#thread de reception pour chaque mySocket existante
     
    	def __init__(self,aself, conn):
    		threading.Thread.__init__(self)
    		self.mySocket = conn			#csocket de communication (unique a chaque mySocket)
    		self.aself = aself		#héritage du self
    		self.isALive = True
     
     
    	def run(self):
    		while self.isALive:
    			message = self.mySocket.recv(1024).decode('utf8') #on recoit les infos de cet communication
    			if not message:
    				pass
     
    			else:
    				print(message)
    		mySocket.close()
     
     
    class client():			#classe de base, pour mika
     
    	def __init__(self, ip, port = 22000):		#initialisation de l'ip, port
    		self.IP = ip
    		self.PORT = port
    		self.mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)	#création du socket
     
     
    	def start(self):		#methode a lancer pour tout initialiser
    		try:
    			self.mySocket.connect((self.IP, self.PORT))		#connexion
    			return True						# si réussite, renvoie true, sinon false
    			threadReception()
    		except Exception as e:
    			print(e)
     
    	def stop(self):						#lorsqu'on étein la table, on etein le serveur
    		self.clientALive = False
    		self.mySocket.close()
     
     
    	def send(self, message):				#méthode pour envoyer un message à l'adresse choisie
    		try:
    			self.mySocket.send(message.encode('utf8'))		#envoi du message
    		except Exception as e:
    			print (e)
    			print ('appareil faux/ pb de connexion')
     
     
    while 1 :
    	a = client('localhost',8000)
    	a.start()
    	msg = input('> ')
    	a.send(msg)

    et celui du serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    import threading
    import socket
    import os
    import time 
     
     
    #------------------------------------------------------
    class threadReception(threading.Thread):		#thread de reception pour chaque connexion existante
     
    	def __init__(self, envoi, add, conn):
    		threading.Thread.__init__(self)
    		self.addresse = add		#adresse pour recuperer la connexion / supprimer
    		self.connexion = conn			#csocket de communication (unique a chaque connexion)
    		self.envoi = envoi		#héritage du self
    		self.isALive = True
     
     
    	def run(self):
    		while self.isALive:
    			message = self.connexion.recv(1024).decode('utf8') #on recoit les infos de cet communication
    			if not message:
    				break
     
    			else:
    				print(message)
    		self.connexion.close()		#on ferme le socket
    		del self.envoi.connectedList[self.addresse]		#on suprime la connexion du dictionnaire
     
     
     
     
     
    class serveur(threading.Thread):			#classe de base, pour mika
     
    	def __init__(self, ip, port = 22000):		#initialisation de l'ip, port
    		threading.Thread.__init__(self)
    		self.IP = ip
    		self.PORT = port
    		self.connectedList = {}			# {'adresse':connexion} creation du dictionnaire qui comporte l'adresse et le socket connexion d'un appareil
    		self.mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)	#création du socket
    		#self.mySocket.settimeout(0.2)		#timeout pour ne pas blocquer le while plus tard
    		self.serverALive = True				#activation du while
     
     
    	def run(self):		#methode a lancer pour tout initialiser
    		print('serveur start')
     
    		try:
    			self.mySocket.bind((self.IP, self.PORT))		#bind du socket sur l'ip et le port
    		except Exception as e:
    			print(e)
    			return False
     
    		while self.serverALive:				#tant que le serveur est en vie, 
    			try:
    				self.mySocket.listen(10)
    				connexion, adresse= self.mySocket.accept()		#connexion : socket de comunication, addresse liste [ip, port]
    				self.connectedList[adresse[0]] = connexion		#enregistre dans le dico le socket de connexion avec l'adresse en clée
    				threadReception(self, adresse[0], connexion).start()				#on lance le thread de reception pour chaque connexion
    			except Exception as e:
    				print(e)
     
     
     
    	def stop(self):						#lorsqu'on étein la table, on etein le serveur
    		self.serverALive = False
    		self.mySocket.close()
    		print('serveur deconecter')
     
     
    	def getConnected(self):				#renvoie la liste des appareils connectés (clée du dico)
    		lis = []
    		for i in self.connectedList:
    			lis.append(i)
    		return lis
     
     
    	def send(self, appareil, message):				#méthode pour envoyer un message à l'adresse choisie
    		try:
    			self.connectedList[appareil].send(message.encode('utf8'))		#envoi du message
    		except Exception as e:
    			print (e)
    			print ('appareil faux/ pb de connexion')
     
     
     
    a = serveur('localhost', 8000)
    a.start()
    while 1:
    	try:
    		listen = a.getConnected()
    		listen = listen[0]
    	except Exception as e:
    		#print(e)
    		pass
    	else :
    		msg = input('> ')
    		a.send(listen,msg)
    ps : je suis dyslexique désoler par avance pour les fautes.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Salut,

    Relisez votre code: côté client le thread de réception n'est même pas démarré.
    De plus, vous ignorez beaucoup d'erreurs comme par exemple côté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            try:
    		listen = a.getConnected()
    		listen = listen[0]
    	except Exception as e:
    		#print(e)
    		pass
    après si çà fonctionne bizarre, vu comment vous avez codé çà, c'est normal.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par défaut
    salut merci d'avoire mit en evidence ces fautes asser ennorme. je doit etre très fatiguer. mai après correction du code (je n'avais pas mit certain argument, oublier d’écrire .start() pour les thread, j'ai mit un return au milieux d'une méthode. bref plais de faut plus énorme les une que les autres.).
    il me reste toujours le 1er problème, pour recevoir un message je doit en envoyer un, c'est comme si le input() étai bloquant même pour les autre Thread.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par micka.Lo Voir le message
    il me reste toujours le 1er problème, pour recevoir un message je doit en envoyer un, c'est comme si le input() étai bloquant même pour les autre Thread.
    Et ou est le code corrigé où, de plus, les exceptions sont traitées plutôt que d'être ignorées? Ce que vous racontez là est l'effet de bord provoqué des quelques lignes de (votre) code donné en exemple dans mon post précédent.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par défaut
    je ne vois pas actuellement l'utilité de les exception secondaire quand le code principal ne fonctionne pas comme je voudrai (d’autant plus que pour l’instant elle ne pause pas de problème car elle sont inexistant). dans le message précédent vous m'aviez montrer un bout de code ou je devrez gérer les exception mai si vous préférer je peut le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    listen = a.getConnected()
    if len(listen) > 1 :
        listen = listen[0]
    pour le code que je pance avoire corriger,
    serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
     
    import threading
    import socket
    import os
    import time 
     
     
    #------------------------------------------------------
    class threadReception(threading.Thread):		#thread de reception pour chaque connexion existante
     
    	def __init__(self, envoi, add, conn):
    		threading.Thread.__init__(self)
    		self.addresse = add		#adresse pour recuperer la connexion / supprimer
    		self.connexion = conn			#csocket de communication (unique a chaque connexion)
    		self.envoi = envoi		#héritage du self
    		self.isALive = True
     
     
    	def run(self):
    		while self.isALive:
    			message = self.connexion.recv(1024).decode('utf8') #on recoit les infos de cet communication
    			if not message:
    				pass
     
    			else:
    				print(message)
    		self.connexion.close()		#on ferme le socket
    		del self.envoi.connectedList[self.addresse]		#on suprime la connexion du dictionnaire
     
     
    class serveur(threading.Thread):			#classe de base, pour mika
     
    	def __init__(self, ip, port = 22000):		#initialisation de l'ip, port
    		threading.Thread.__init__(self)
    		self.IP = ip
    		self.PORT = port
    		self.connectedList = {}			# {'adresse':connexion} creation du dictionnaire qui comporte l'adresse et le socket connexion d'un appareil
    		self.mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)	#création du socket
    		#self.mySocket.settimeout(0.2)		#timeout pour ne pas blocquer le while plus tard
    		self.serverALive = True				#activation du while
     
     
    	def run(self):		#methode a lancer pour tout initialiser
    		print('serveur start')
     
    		try:
    			self.mySocket.bind((self.IP, self.PORT))		#bind du socket sur l'ip et le port
    		except Exception as e:
    			print(e)
    			return False
     
    		while self.serverALive:				#tant que le serveur est en vie, 
    			try:
    				self.mySocket.listen(10)
    				connexion, adresse= self.mySocket.accept()		#connexion : socket de comunication, addresse liste [ip, port]
    				self.connectedList[adresse[0]] = connexion		#enregistre dans le dico le socket de connexion avec l'adresse en clée
    				threadReception(self, adresse[0], connexion).start()				#on lance le thread de reception pour chaque connexion
    			except Exception as e:
    				print(e)
     
     
     
    	def stop(self):						#lorsqu'on étein la table, on etein le serveur
    		self.serverALive = False
    		self.mySocket.close()
    		print('serveur deconecter')
     
     
    	def getConnected(self):				#renvoie la liste des appareils connectés (clée du dico)
    		lis = []
    		for i in self.connectedList:
    			lis.append(i)
    		return lis
     
     
    	def send(self, appareil, message):				#méthode pour envoyer un message à l'adresse choisie
    		try:
    			self.connectedList[appareil].send(message.encode('utf8'))		#envoi du message
    		except Exception as e:
    			print (e)
    			print ('appareil faux/ pb de connexion')
     
     
    	def sendFile(self, appareil, nom, chemindesti):		#envoi de fichiers
    		try:
    			nom = nom.split('/')[-1]
    			fichier = open('/home/justin/Sun_partage/'+appareil+'/'+nom, 'rb')		#verifie si fichier existe
    			fichier.close()
    			self.connectedList[appareil]		#verifie si l'appareil existe
    			__sendFile(appareil, nom, chemindesti)
    		except Exception as e:
    			print(e)
    			print('fichier inhexistant / chemin faux / appareil faux')
     
     
    	def __sendFile(self, appareil, nom, chemindesti):
    		connexion = self.connectedList[appareil]
    		chemin = '/home/justin/Sun_partage/'+appareil+'/'+nom
    		fichier = open(chemin, 'rb')
    		octets = os.path.getsize(chemin)
    		num = 0
    		parametres = 'transfer de fichiers.' + nom + '.' + str(octets) + '.' + chemindesti
    		connexion.send(parametres.encode('utf8'))
    		msg = connexion.recv(1024).decode('utf8')
    		if msg == 'go':
    			if octets > 1024:
    				for i in range(octtes/1024):
    					fichier.seek(num, 0)
    					donnee = fichier.read(1024)
    					connexion.send(donnee)
    					num += 1024
    			else:
    				donnee = fichier.read()
    				connexion.send(donnee)
     
    			fichier.close()
    			connexion.send('F'.encode('utf8'))
     
     
    a = serveur('localhost', 8000)
    a.start()
    while 1:
    	listen = a.getConnected()
    	if len(listen)>0:
    		listen = listen[0]
    		msg = input('> ')
    		a.send(listen,msg)
    client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    import threading
    import socket
    import os
     
     
    #------------------------------------------------------
    class threadReception(threading.Thread):		#thread de reception pour chaque mySocket existante
     
    	def __init__(self,aself):
    		threading.Thread.__init__(self)
    		self.aself = aself		#héritage du self
    		self.isALive = True
     
     
    	def run(self):
    		while self.isALive:
    			message = self.aself.mySocket.recv(1024).decode('utf8') #on recoit les infos de cet communication
    			if not message:
    				pass
     
    			else:
    				print(message)
     
    		mySocket.close()
     
     
    class client():			#classe de base, pour mika
     
    	def __init__(self, ip, port = 22000):		#initialisation de l'ip, port
    		self.IP = ip
    		self.PORT = port
    		self.mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)	#création du socket
     
     
    	def start(self):		#methode a lancer pour tout initialiser
    		try:
    			self.mySocket.connect((self.IP, self.PORT))		#connexion
    			b = threadReception(self)
    			b.start()
    			return True
    		except Exception as e:
    			print(e)
    			return False
     
    	def stop(self):						#lorsqu'on étein la table, on etein le serveur
    		self.clientALive = False
    		self.mySocket.close()
     
     
    	def send(self, message):				#méthode pour envoyer un message à l'adresse choisie
    		try:
    			self.mySocket.send(message.encode('utf8'))		#envoi du message
    		except Exception as e:
    			print (e)
    			print ('appareil faux/ pb de connexion')
     
     
    while 1 :
    	a = client('localhost',8000)
    	a.start()
    	msg = input('> ')
    	a.send(msg)

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Super, alors il n'y a plus de problème

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par défaut
    Bon c'est cool le code fonctionne. mai seulement si j'envoie des messages pres enregistrer ou que je les récupères d'une autre manière que avec input(). moi ça me gêne pas parce que c'était que pour le test, après je vais faire une interface graphique. mais je trouve ça quand même bizarre que le input () sois brocante même pour les Thread. Quelqu'un aurait une explication?

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par micka.Lo Voir le message
    mais je trouve ça quand même bizarre que le input () sois brocante même pour les Thread. Quelqu'un aurait une explication?
    "input" ne bloque que son propre thread.
    Donc, si ce n'est pas le cas, c'est un soucis dans votre code (ou plutôt, çà fait ce que vous avez écrit même si ce n'est pas ce que vous espérez) et il faut donner la recette pour le reproduire i.e. je lance le serveur, je constate que, je lance le client,..
    Le but étant de savoir quelle portion du code il faut essayer de lire pour comprendre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par micka.Lo Voir le message
    mais je trouve ça quand même bizarre que le input () sois brocante même pour les Thread. Quelqu'un aurait une explication?
    "input" ne bloque que son propre thread.
    Donc, si ce n'est pas le cas, c'est un soucis dans votre code (ou plutôt, çà fait ce que vous avez écrit même si ce n'est pas ce que vous espérez) et il faut donner la recette pour le reproduire i.e. je lance le serveur, je constate que, je lance le client,..
    Le but étant de savoir quelle portion du code il faut essayer de lire pour comprendre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Par défaut
    Bonjour à tous,

    Cette conversation m'intéresse beaucoup ! Je suis totalement un débutant dans le monde du réseaux. J'ai déjà codé de simples échanges en protocoles UDP et TCP comme ce qui a été fait sur cette discussion.

    Pour y faire suite, serait-il possible, en reprenant ce type de serveur-client, de communiquer avec une autre machine qui n'est pas sur le même réseaux ? Généraliser ce code pour sortir du 'localhost' et se connecter avec un client ailleurs via internet ? (je sais qu'il y a des librairies url ou smtp par exemple en python, donc j'imagine que cela doit pouvoir se faire ..)

    Merci d'avance pour vous éclaircissements !

  11. #11
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Salut,

    Citation Envoyé par haian Voir le message
    Pour y faire suite, serait-il possible, en reprenant ce type de serveur-client, de communiquer avec une autre machine qui n'est pas sur le même réseaux ? Généraliser ce code pour sortir du 'localhost' et se connecter avec un client ailleurs via internet ? (je sais qu'il y a des librairies url ou smtp par exemple en python, donc j'imagine que cela doit pouvoir se faire ..)
    Internet est un réseau de réseaux.
    On peut aller très loin, tant qu'il y a des routes pour...
    Mais çà serait mieux d'aller regarder dans les tutos. de la rubrique réseau pour apprendre les bases.
    C'est pas si simple.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Messagerie en UDP socket
    Par amounaW dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 29/09/2011, 00h30
  2. messagerie instantanée et sockets
    Par Spidy dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 13/05/2010, 21h34
  3. Messagerie instantanée en socket java
    Par nzo70 dans le forum Entrée/Sortie
    Réponses: 23
    Dernier message: 08/12/2008, 09h57
  4. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  5. transfert d'un fichier bitmap en socket tcp
    Par localhost dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/07/2002, 00h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo