web-dev-qa-db-fra.com

Errno 10061: Aucune connexion n'a pu être établie car la machine cible l'a activement refusée (client - serveur).

J'ai un problème avec ces codes client et serveur, je ne cesse de recevoir le [Errno 10061] Aucune connexion n'a pu être établie car la machine cible l'a activement refusé  

J'exécute le serveur sur une machine virtuelle avec Windows XP SP3 et le client sous Windows 7 64 bits, ma version python est la version 2.7.3. Ce que je veux savoir, c'est comment éditer le code pour utiliser le client et le serveur sur différents réseaux! Merci! 

serveur:

#!/usr/bin/python           # This is server.py file

import socket               # Import socket module
s = socket.socket()         # Create a socket object
Host = '0.0.0.0' # Get local machine name
port = 12345                # Reserve a port for your service.


print 'Server started!'
print 'Waiting for clients...'

s.bind((Host, port))        # Bind to the port
s.listen(5)                 # Now wait for client connection.
c, addr = s.accept()     # Establish connection with client.
print 'Got connection from', addr
while True:
  msg = c.recv(1024)
  print addr, ' >> ', msg
  msg = raw_input('SERVER >> ')
  c.send(msg);
  #c.close()                # Close the connection

client :

#!/usr/bin/python           # This is client.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
Host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.

print 'Connecting to ', Host, port
s.connect((Host, port))

while True:
  msg = raw_input('CLIENT >> ')
  s.send(msg)
  msg = s.recv(1024)
  print 'SERVER >> ', msg
#s.close                     # Close the socket when done

PS: le code provient d'Internet.

32
havox

10061 est WSAECONNREFUSED, 'connexion refusée', ce qui signifie qu'il n'y a rien d'écoute sur l'IP: port auquel vous avez essayé de vous connecter.

Un produit de pare-feu, vers l’an 2000, émettait des refus au lieu d’ignorer les connexions entrantes vers les ports bloqués, mais il a rapidement été reconnu comme une fuite d’informations vers les attaquants, puis corrigé ou retiré.

22
user207421

Astuce: actively refused ressemble à un problème technique un peu plus profond, mais ...

... en fait, cette réponse (et en particulier le errno:10061) est également donnée si on appelle l'exécutable bin/mongo et que le service mongodb ne s'exécute pas sur la machine cible. Ceci s'applique même aux instances de la machine locale (toutes se déroulant sur localhost). 

Supprimez toujours cette possibilité triviale d’abord, c’est-à-dire simplement en utilisant le client en ligne de commande pour accéder à votre base de données.

Vois ici.

5
Frank Nocke

En utilisant les exemples de: https://docs.python.org/3.2/library/socketserver.html J'ai déterminé que je devais configurer le port de l'hôte sur la machine sur laquelle le programme serveur était exécuté. Donc, TCPServer sur l'hôte 192.168.0.1 = IP de TCPServer 192.168.0.1, puis je devais définir le côté TCPClient pour qu'il pointe vers l'IP de TCPServer. Donc, la valeur de l’hôte TCPClient = 192.168.0.1 - Désolé, c’est la meilleure chose que je puisse décrire.

3
purza95

si vous avez un serveur distant installé sur votre machine. indiquez server.py Host comme "localhost" et le numéro de port . puis côté client, vous devez donner l'adresse IP locale 127.0.0.1 et le numéro de port . puis ses travaux

0

Je rencontrais un problème similaire lorsque j'appelais l'API REST à l'aide de la bibliothèque python et que je découvrais que mon serveur passait en mode veille, ce qui entraînait ce problème. Dès que je me suis connecté au serveur via Connexion Bureau à distance, mon appel d'API fonctionnait. 

0
Vinaykumar Patel