j'essaie d'établir une communication basique entre un serveur et plusieurs clients via les modules socket et select.
Malheureusement, lorsque j'exécute le code du client l'erreur suivante est affichée:
Traceback (most recent call last):
File "C:\Chat\client.py", line 4, in <module>
connexion_serveur.connect(('localhost',10005))
ConnectionRefusedError: [WinError 10061] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée
Voici les codes du client et du serveur:
#Client
import socket
connexion_serveur = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("Attempting connexion on port 10005")
connexion_serveur.connect(('localhost',10005))
print(connexion_serveur.recv(1024))
#Serveur
import socket
import select
class Server:
def __init__(self, host = 'localhost', port = 10005, max_listen = 5):
self.host = host
self.port = port
self.max_listen = max_listen
self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#Création du socket
self.socket.bind((self.host,self.port))
self.clients=[]
self.clients_pseudos=[]
self.messages=[]
def run(self):
print(f"server running on port {self.port}")
while True:
connexion_requests, wlist, xlist = select.select([self.socket],[],[],0.05)
print(connexion_requests)
for connexion in connexion_requests:
client_connexion, connexions_infos = connexion.accept()
self.clients.append(client_connexion)
server1 = Server()
server1.run()
print("server closed...")
Je précise que j'utilise pyzo, sous windows, que j'ai bien ouvert et exécuté mes deux scripts dans des fenêtres différentes et que j'ai bien exécute le code du serveur avant celui du client.
Merci d'avance pour toute aide!!
EDIT: Ca va faire 3h que je suis dessus et j'avais pas remarqué que j'avais oublié d'appeler listen()
Ca marche avec.
- Edité par the-cellist 25 mai 2022 à 23:01:28
pensez à mettre un pouce en l'air si le message vous a aidé!
You must always have to listen to what the client has to say. Tant mieux si tu as trouvé!
Le Tout est souvent plus grand que la somme de ses parties.
Communication via socket
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
pensez à mettre un pouce en l'air si le message vous a aidé!
Le Tout est souvent plus grand que la somme de ses parties.