una socket servidor que puede expresamente establecer español equipo dicha destino denegó conexión cliente python sockets

python - socket - no se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión



Errno 10061: No se pudo establecer conexión porque la máquina de destino la rechazó activamente(cliente-servidor) (6)

10061 es WSAECONNREFUSED, ''connection refused'', lo que significa que no había nada escuchando en el IP: puerto al que intentó conectarse.

Hubo un producto de firewall alrededor del año 2000 que emitió rechazos en lugar de ignorar las conexiones entrantes a los puertos bloqueados, pero esto fue rápidamente reconocido como una filtración de información a los atacantes y corregido o retirado.

Tengo un problema con estos códigos de cliente y servidor, sigo obteniendo el [Errno 10061] No se pudo establecer ninguna conexión porque el equipo objetivo lo rechazó activamente

Estoy ejecutando el servidor en una máquina virtual con Windows XP SP3 y el cliente en Windows 7 64 bits, mi versión de Python es 2.7.3. Lo que quiero saber es cómo debería editar el código para usar el cliente y el servidor en diferentes redes. ¡Gracias!

servidor:

#!/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

cliente:

#!/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

PD: el código es de internet.


La solución es usar el mismo número de IP y puerto tanto en el cliente como en el servidor. Intente, en el cliente, usar TCP_IP = ''escriba el número de IP aquí'' TCP_PORT = escriba el número de puerto aquí en la conexión ((TCP_IP, TCP_PORT))


Sugerencia: el actively refused suena como un problema técnico algo más profundo, pero ...

... en realidad, esta respuesta (y también específicamente errno:10061 ) también se da, si uno llama al ejecutable bin / mongo y el servicio mongodb simplemente no se ejecuta en la máquina objetivo. Esto incluso se aplica a las instancias de máquinas locales (todas sucediendo en localhost).

Siempre descarte esta posibilidad trivial , es decir, simplemente usando el cliente de la línea de comando para acceder a su db.

Mira aquí.


Usando los ejemplos de: https://docs.python.org/3.2/library/socketserver.html Decidí que necesitaba configurar el puerto HOST en la máquina en la que tenía el programa del servidor ejecutándose. Entonces TCPServer en 192.168.0.1 HOST = TCPServer IP 192.168.0.1 luego tuve que configurar el lado de TCPClient para apuntar a la IP de TCPServer. Entonces el valor de TCPClient HOST = 192.168.0.1 - Disculpa, es lo mejor que puedo describir.


la solución a corto plazo es usar el host iis predeterminado y el puerto normalmente 120.0.0.1 y 80, respectivamente. Sin embargo, todavía estoy buscando una solución más versátil.


si tiene un servidor remoto instalado en su máquina. dar el host server.py como "localhost" y el número de puerto. luego del lado del cliente, debe dar ip 127.0.0.1 local y número de puerto. entonces su trabajo