Python, Connectin Refusé 10061

Je continue à avoir cette erreur

[Err 10061] Aucune connexion n’a pu être établie car la machine cible l’a activement refusée.

J’utilise Windows 7 64 bits, aucun logiciel antivirus ou de protection, et python est autorisé via mon pare-feu (j’ai également essayé de désactiver complètement mon pare-feu mais le même résultat). Lorsque je lance le serveur et que j’utilise telnet, il se connecte parfaitement. Lorsque j’essaie de me connecter au serveur avec le client, cela échoue. Des suggestions quant à ce que je pourrais essayer de résoudre? Si vous avez besoin de plus d’informations, il vous suffit de demander et je vous fournirai.

Code client

import socket import sys def main(): host = "" port = 8934 message = "Hello World!" host = raw_input("Enter IP: ") #Create Socket try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error, msg: print "Failed to create socket. Error code: %s Error Message: %s"%(str(msg[0]),msg[1]) sys.exit() print "Socket created" #Connec to Server print host print port s.connect((host,port)) print "You are connected to %s with IP adress of %s"%(host,host) #Send Data try: s.sendall(message) except socket.error: print "Failed to send." #Receive Data reply = s.recv(4096) if __name__ == "__main__": main() 

Code du serveur

 # !usr/bin/python import socket import sys HOST = "" PORT = 8934 def main(): #Setup socket try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error,msg: print "Unable to create socket" sys.exit() print "Socket created." #Bind to adress try: s.bind((HOST,PORT)) except socket.error,msg: print "Bind failed. Closing..." sys.exit() print "Socket bound." #Start listening s.listen(10) print "Socket Listening" #Accept connection conn, addr = s.accept() print "Connected to %s:%s"%(addr[0],addr[1]) if __name__ == "__main__": main() 

En supposant votre indentation et en exécutant votre code … cela fonctionne très bien. * (Tant que je tape 127.0.0.1 quand il me demande l’adresse IP.)

Bien sûr, la deuxième fois que je lance le client (si je n’ai pas redémarré le serveur), je reçois une erreur de connexion refusée. Mais c’est juste parce que vous avez codé un serveur qui se ferme immédiatement dès qu’il obtient la première connexion. Donc, la deuxième fois que vous exécutez le client, il n’y a pas de serveur et le système d’exploitation rejette la connexion.

Vous pouvez toujours exécuter à nouveau le serveur, ce qui vous permet d’exécuter le client une fois de plus. (Sauf que le serveur peut recevoir une erreur 10048 lorsqu’il tente de lier le socket, car le système d’exploitation le conserve pour le propriétaire précédent. Si vous voyez cela, consultez SO_REUSEADDR dans les documents.)

* Par “fonctionne bien”, je veux dire qu’il se connecte et imprime ce qui suit avant de quitter:

 Socket created 127.0.0.1 8934 You are connected to 127.0.0.1 with IP adress of 127.0.0.1 

De toute évidence, il n’envoie jamais rien au serveur ou ne reçoit rien, car le serveur n’a pas d’appels send ou recv , ni rien d’autre.