Bonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
Bonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
Bonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réceptionBonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réception
Bonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réceptionBonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiquement
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( peers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
En effet j'etais pas tres clair! Le probleme est plutot du cote serveur
ou la fonction select n'est jamais bloquante .
Du coup le process serveur rentre dans une boucle infinie meme s'il n'a
rien a publier.Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réceptionBonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiqueme nt
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( pe ers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
En effet j'etais pas tres clair! Le probleme est plutot du cote serveur
ou la fonction select n'est jamais bloquante .
Du coup le process serveur rentre dans une boucle infinie meme s'il n'a
rien a publier.
Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réception
Bonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiqueme nt
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( pe ers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data
En effet j'etais pas tres clair! Le probleme est plutot du cote serveur
ou la fonction select n'est jamais bloquante .
Du coup le process serveur rentre dans une boucle infinie meme s'il n'a
rien a publier.Salut!
Je ne suis pas certain d'avoir bien saisi ton problème mais si le
soucis c'est que le client ne peut pas envoyer de données parce qu'il
est en attente alors il faut simple créer 2 threads, un pour l'envoi
des données et pour la réceptionBonjour j'ai ecrit un petit client et un serveur grace au module socket
et select. L'idee est la suivant : je veux pouvoir updater dynamiqueme nt
tous les clients connectes au serveur quand un evenement se passe sur
le serveur. Potentiellement cet evenement peut venir des clients( ca
ressemble a serveur chat et ses clients )
Mon probleme est que les clients sont toujours en attente de donnees et
l'appel a la fonction select ne va jamais bloque a cause des socket qui
sont disponible pour ecrire.
Comment peut on gerer ca et eviter que le serveur parte dans un boucle
while 1?
code:
<Server>
import socket, select
import thread, random
import time
def GenerateMsg():
while 1:
Q.append(str(random.randint(0,100)))
time.sleep(2)
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
myBacklog = 5
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((myHostname,myPort))
serverSocket.listen(myBacklog)
print "listening..."
peers = [serverSocket]
Q = ['test']
thread.start_new_thread(GenerateMsg,())
while 1:
ready_to_read , ready_to_write , exceptions = select.select( pe ers
, peers ,[])
print "Select"
if ready_to_read:
for client in ready_to_read:
if client == serverSocket:
peer,addr = serverSocket.accept()
peers.append(peer)
print "Client connected"
else:
data = client.recv(myBufSize)
print data
if Q:
if ready_to_write:
for client in ready_to_write:
data = Q[0]
client.send(data)
Q.remove(data)
<client>
from socket import socket,AF_INET,SOCK_STREAM
myHostname = "localhost"
myPort = 1000
myBufSize = 1024
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((myHostname,myPort))
print "Connected"
clientSocket.send("I am connecting ")
print "Request sent"
while 1:
data = clientSocket.recv(myBufSize)
if not data:
break
print data