迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 Python 错误 Socket.Gaierror: [Errno 8] Nodename Nor Servname Provided, or Not Known

作者:迹忆客 最近更新:2023/05/16 浏览次数:

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

输出:

socket error


修复 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 中的套接字错误。 我们希望大家觉得本篇文章对大家有所帮助。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便