Socket et Threading

Signaler
Messages postés
15
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
20 octobre 2009
-
Messages postés
1
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
22 janvier 2009
-
Bonjour ,

J'ai fait un client/serveur socket , mais je me comprend pas les threads ... Je suis obligé de faire une boucle pour relance le programme à chaque réception d'une data client.

voici mon code :

# Serveur Socket

import socket
import time
import threading
import os

def connec():
HOST = '127.0.0.1' # Nom du serveur
PORT = 8010 # Port d'ecoute sur le serveur
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connexionn du client :', addr
while 1:
data = conn.recv(1024)
if not data:
print 'Deconnexion du client'
break
else:
print data
conn.send(data)
conn.close()

a=threading.Thread(target=connec,args=(3,5))
a.start
connec()

7 réponses

Messages postés
31
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
11 juillet 2010
8
Salut,

Je connais bien les sockets en multi-threading. Je veux bien t'aider,
seulement il faudrait que tu présentes ton code correctement car là je
ne comprends rien.

Merci

@ bientôt

<hr size="2" width="100%">.: Lambdacrash
:.
Messages postés
15
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
20 octobre 2009

Merci pour ton aide.

PS : En fait , je comprend pas les threads ....

import socket
import time
import threading
import os

def connec():
print 'Serveur Pret, en attente ...'
HOST = '127.0.0.1' # Nom du serveur
PORT = 8010 # Port d'ecoute sur le serveur
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connexionn du client :', addr
while 1:
data = conn.recv(1024)
if not data:
print 'Deconnexion du client'
break
else:
print data
conn.send(data)
Messages postés
31
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
11 juillet 2010
8
Salut,
tu m'excuseras je vais faire vite car je pars au boulot.
Un thread contient du code que tu auras écris (script envoyant l'heure courante en broadcast par exemple).Si tu créés 5 threads contenant le même code, ce code sera exécuter 5 fois simultanément et ceux jusqu'à l'infini dans le temps si l'exécution n'est stoppée.
Lancer 5 threads est équivalent à écrire 5 fichiers .py contenant le même code et tenter de les exécuter simultanément. Les threads peuvent le faire mais pas toi !

Bonne journée c'est le matin qui avance (7h15).




<HR width="100%" SIZE=2>
.: Lambdacrash
:.
Messages postés
31
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
11 juillet 2010
8
Salut, essaie ce petit exemple et tu comprendras très vite ce que sont des threads.

# -*- coding: cp1252 -*-

from threading import Thread

import time

def runThread(msg,t):

for i in range (10):

print i, msg

time.sleep(t)

th1 Thread(target runThread, args=("Je m'appelle A",1.0))

th2 Thread(target runThread, args=("Je m'appelle B",1.4))

th1.start()

th2.start()

time.sleep(4)

print "Début de l'attente"

print th1.isAlive()

th1.join()

print th2.isAlive()

print "Ciao"


<hr size="2" width="100%">.: Lambdacrash
:.

Messages postés
15
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
20 octobre 2009

Merci , je vais essayer

Cordialement ,
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
1
le truc c'est que tu lance un thread, mais que ton programme principale termine ensuite...

donc ton hread est terminé par python.
Messages postés
1
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
22 janvier 2009

je veut avoir un code source de client http sous visuel c++