Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python
-
Vuelva a crear
socket.gaierror: [Errno 8] nodename ni servname proporcionado, o desconocido
en Python -
Arreglar
socket.gaierror: [Errno 8] nodename ni servname proporcionado, o desconocido
en Python
El módulo socket
en Python ofrece una interfaz para la API de sockets de Berkeley. Los sockets ayudan a conectar dos nodos en una red para que puedan comunicarse entre sí.
A veces, puede obtener un “error de socket” en Python cuando trabaja con módulos de socket
. Este tutorial te enseñará a resolver ese error en Python.
Vuelva a crear socket.gaierror: [Errno 8] nodename ni servname proporcionado, o desconocido
en Python
Aquí recrearemos el socket.gaierror
y explicaremos cómo resolverlo en Python.
El siguiente script es un servidor que espera a que un cliente se conecte al puerto especificado.
import socket
s = socket.socket()
host = "localhost"
port = 1234
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
print("Connection received from", addr)
c.send("Thank you for connecting")
c.close()
La función socket.socket()
crea un objeto socket y socket.bind()
vincula el socket a la dirección especificada.
El socket.accept()
acepta la conexión cuando un cliente se conecta. Cuando la conexión es exitosa, devuelve la salida y cierra la conexión.
A continuación se muestra un cliente que se conecta al host especificado.
import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.connect((host, port))
print(s.recv(1024))
s.close
Ahora ejecute server.py
en segundo plano y ejecute client.py
a continuación.
python server.py &
python client.py
Producción:
Arreglar socket.gaierror: [Errno 8] nodename ni servname proporcionado, o desconocido
en Python
El resultado muestra que el error ocurrió en la línea 7, donde el código dice s.connect((host, port))
. Esto se debe a que socket.gethostname()
devuelve el nombre de host de la máquina donde se está ejecutando actualmente el intérprete de Python.
Pero debe especificar la dirección IP del host en lugar del nombre del host. Puede resolver este problema asignando el host
como localhost
o 127.0.0.1
en el archivo client.py
.
import socket
s = socket.socket()
host = "localhost"
port = 1234
s.connect((host, port))
print(s.recv(1024))
s.close
Producción:
Ahora sabemos cómo solucionar el error de socket
en Python. Esperamos que este tutorial le resulte útil.
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python