迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中 Importerror: Install XLRD for Excel Support 错误

发布时间:2023/05/16 浏览次数:162 分类:Python

在本篇文章中,我们将探讨在 Python 中使用 Pandas 包时可能遇到以下错误的原因和解决方案。ImportError: Install xlrd >= 0.9.0 for Excel support 。让我们首先简要介绍一下 Pandas。

解决 Python 中 TypeError: An Integer Is Required 错误

发布时间:2023/05/16 浏览次数:100 分类:Python

在 Python 代码中发生的另一个最常见的错误是 TypeError。本文将展示我们如何在 Python 中得到 TypeError。 此外,我们将通过使用必要的示例和解释来讨论该主题,以使该主题更容易理解。

Python 中 ConnectionRefusedError: [Errno 61] Connection Refused 错误

发布时间:2023/05/16 浏览次数:189 分类:Python

有时在设计客户端-服务器程序时,您可能会遇到错误 ConnectionRefusedError。Python中 ConnectionRefusedError 错误是如何产生的 正如我们已经讨论过的,这个错误主要发生在客户端程序无法连接到服务器

Python 中错误 TypeError: Must Be Real Number, Not STR

发布时间:2023/05/16 浏览次数:152 分类:Python

TypeError: must be real number, not str 错误涉及使用错误的类型和非实数,在本例中为 str 类型。使用 float() 或 int() 解决Python 中 TypeError: must be real number, not str

Python 错误 TypeError: Iteration Over Non-Sequence

发布时间:2023/05/16 浏览次数:67 分类:Python

当您尝试迭代不可迭代的对象时,会出现错误 TypeError: iteration over non-sequence 。 现在您已经了解了 TypeError 的原因,让我们在 Python 中重新创建非序列错误的迭代。

Python 中管理 Segmentation Fault

发布时间:2023/05/16 浏览次数:173 分类:Python

使用 settrace 管理 Python 中的分段错误 segmentation fault 分段错误(Segmentation Fault)的一些最大原因是非法内存位置(使用您的代码访问您无权访问的内存)、获取庞大的数据集、无限递归等。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便