Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python

Rohan Timalsina 15 febrero 2024
  1. Vuelva a crear socket.gaierror: [Errno 8] nodename ni servname proporcionado, o desconocido en Python
  2. Arreglar 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:

error de socket

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:

error de socket solucionado - conexión exitosa

Ahora sabemos cómo solucionar el error de socket en Python. Esperamos que este tutorial le resulte útil.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - Python Error