修复 Python 错误 Socket.Gaierror: [Errno 8] Nodename Nor Servname Provided, or Not Known
Python 中的套接字模块为 Berkeley 套接字 API 提供了一个接口。 套接字有助于连接网络上的两个节点,以便它们可以相互通信。
有时,在使用套接字模块时,您可能会在 Python 中遇到套接字错误。 本篇文章将介绍在 Python 中解决该错误。
Python 重现 socket.gaierror: [Errno 8] nodename nor servname provided, or not known
在这里,我们将重新创建 socket.gaierror 并解释如何在 Python 中解决它。
以下脚本是等待客户端连接到指定端口的服务器。
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()
socket.socket()
函数创建套接字对象,socket.bind()
将套接字绑定到指定地址。
socket.accept()
在客户端连接时接受连接。 当连接成功时,它返回输出并关闭连接。
下面是一个连接到指定主机的客户端。
import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.connect((host, port))
print(s.recv(1024))
s.close
现在在后台运行 server.py,接下来运行 client.py。
$ python server.py &
$ python client.py
输出:
修复 Python 错误 socket.gaierror: [Errno 8] nodename nor servname provided, or not known
输出显示错误发生在第 7 行,其中代码为 s.connect((host, port))
。 这是因为 socket.gethostname()
返回了当前运行 Python 解释器的机器的主机名。
但是您必须指定主机 IP 地址而不是主机名。 您可以通过在 client.py 文件中将主机指定为 localhost 或 127.0.0.1 来解决此问题。
import socket
s = socket.socket()
host = 'localhost'
port = 1234
s.connect((host, port))
print(s.recv(1024))
s.close
输出:
现在我们知道如何修复 Python 中的套接字错误。 我们希望大家觉得本篇文章对大家有所帮助。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串