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

此错误表明客户端无法连接到服务器脚本系统上的端口。 既然能ping通服务器,应该不会吧。

这可能是由多种原因引起的,例如到目的地的路由不正确。 第二种可能性是您的客户端和服务器之间有防火墙,它可能在服务器上,也可能在客户端上。

不应该有任何路由器或防火墙可能会停止通信,因为根据您的网络地址,服务器和客户端都应该在同一个局域网上。


为什么 ConnectionRefusedError: [Errno 111] Connection refused 在 Python 中发生

当客户端由于无效的 IP 或端口而无法访问服务器,或者地址不唯一且已被另一台服务器使用时,会出现此错误。

服务器未运行时也会出现连接拒绝错误,因此客户端无法访问服务器,因为服务器应首先接受连接。

代码示例:

# server code
import sockets = socket.socket()
host = socket.gethostname()
port = 1717
s.bind((host, port))s.listen(5)
while True:c,addr = s.accept()print("Got connection ", addr)c.send("Meeting is at 10am")c.close()
# client code
import sockets = socket.socket()
host = '192.168.1.2'
port = 1717s.connect((host,port))
print(s.recv(1024))
s.close

输出:

socket.error: [Errno 111] Connection refused

如何解决Python中 ConnectionRefusedError: [Errno 111] Connection refused 错误

尽量使接收套接字尽可能易于访问。 也许可访问性只会发生在一个界面上,这不会影响局域网。

另一方面,一种情况可能是它专门侦听地址 127.0.0.1,从而无法与其他主机建立连接。

代码示例:

import sockets = socket.socket()
host = socket.gethostname()
port = 1717
s.bind(('', port))s.listen(5)
while True:c,addr = s.accept()print("Got connection ", addr)c.send("The Meeting is at 10 am")c.close()
import sockets = socket.socket()
host = socket.gethostname()
port = 1717
s.bind(('', port))s.connect((host, port))
print(s.recv(1024))
s.close()

输出:

Got connection('192.168.1.2')
The meeting is at 10 am

当您运行命令 python server.py 时,您将收到消息 Got connection。 同时当你运行命令 python client.py 时,你会收到一条来自服务器的消息。

DNS 解析可能是此问题背后的另一个原因。 由于 socket.gethostname() 返回主机名,如果操作系统无法将其转换为本地地址,则会返回错误。

Linux操作系统可以通过添加一行来编辑主机文件。

host = socket.gethostname()
port = 1717
s.bind((host,port))
Use gethostbyname
host = socket.gethostbyname("192.168.1.2")
s.bind((host, port))

因此,您必须在客户端和服务器端使用相同的技术来访问主机。 例如,您可以在客户案例中应用上述程序。

您还可以通过本地主机名 hostnamehost = socket.gethostname() 或本地主机的特定名称 host = socket.gethostbyname("localhost") 进行访问。

host = socket.gethostname()
s.connect((host, port))
host = socket.gethostbyname("localhost")
s.connect((host, port))

总结

当客户端无法连接到服务器时,会出现 Python 中的 ConnectionRefusedError。 几个原因包括客户端不知道 IP 或端口地址,以及当客户端想要连接时服务器未运行。

上面提到的几种方法可以解决此连接问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/196765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欢迎回到 C++ - 现代 C++(心得-壹)

原文链接欢迎回到 C - 现代 C | Microsoft Learn 这里先是讲了现代c的优势,其相对于其他编程语言有快速、高效。 相对于其他语言,该语言更加灵活,跨平台(硬件平台)性也很强,可以直接访问硬件,虽…

第三方UI组件库的样式修改

一、场景: 一般来说,我们在使用第三方UI组件库(如:vant,element-plus等)时,UI组件库自带的样式不能满足用户的个性化需求时,就需要我们开发人员自己动手对组件库的局部样式进行修改。…

Robot Grasp[Code with paper]

题目/摘要重点 Deep Object Pose Estimation for Semantic Robotic Grasping of Household Objects 使用合成数据为机器人训练深度神经网络 操纵有望获得几乎无限数量的预标记 训练数据。合成数据一直在弥合所谓的现实差距,因此 在合成数据上训练的网络在暴露于现…

PoE技术详解

标准的五类网线有四对双绞线,IEEE 802.3af和IEEE 802.3at允许两种用法:通过空闲线对供电或者数据线对供电。IEEE 802.3bt允许通过空闲线对供电、通过数据线对供电或者空闲线对和数据线对一起供电,如图16.1所示。 图 16.1 PoE供电线对 当在一…

考研英语语法(三十九)

平行结构-分类 名词(词组)的平行并列 The English,the Germans,the Dutch and the French were investing in Britains former colony The English ,the Germans ,the Dutch and the French The networked com…

整数的立方和

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

入门指南:使用Element UI构建漂亮的Vue.js应用

文章目录 🍂引言🍂安装并引入Element UI🍂使用Element UI组件🍂更多常用组件🍁Button 按钮🍁Input 输入框🍁Radio 单选框🍁Checkbox 多选框🍁Select 选择器🍁…

用取样思想一探AIX上进程性能瓶颈

本篇文章也是我在解决客户问题时的一些思路,希望对读者有用。 本文与GDB也与DBX(AIX上的调试工具)无关,只是用到了前文《GDB技巧》中的思想:取样思想 客户问题: 原始问题是磁盘被占满了,通过…

C++ 系列 第四篇 C++ 数据类型上篇—基本类型

系列文章 C 系列 前篇 为什么学习C 及学习计划-CSDN博客 C 系列 第一篇 开发环境搭建(WSL 方向)-CSDN博客 C 系列 第二篇 你真的了解C吗?本篇带你走进C的世界-CSDN博客 C 系列 第三篇 C程序的基本结构-CSDN博客 前言 面向对象编程(OOP)的…

Star 10.4k!推荐一款国产跨平台、轻量级的文本编辑器,内置代码对比功能

notepad 相信大家从学习这一行就开始用了,它是开发者/互联网行业的上班族使用率最高的一款轻量级文本编辑器。但是它只能在Windows上进行使用,而且正常来说是收费的(虽然用的是pj的)。 对于想在MacOS、Linux上想使用,…

不瞒各位,不安装软件也能操作Xmind文档

大家好,我是小悟 作为搞技术的一个人群,时不时就要接收产品经理发过来的思维脑图,而此类文档往往是以Xmind编写的,如果你的电脑里面没有安装Xmind的话,不好意思,是打不开这类后缀结尾的文档。 打不开的话…

TensorRT-LLM保姆级教程(二)-离线环境搭建、模型量化及推理

随着大模型的爆火,投入到生产环境的模型参数量规模也变得越来越大(从数十亿参数到千亿参数规模),从而导致大模型的推理成本急剧增加。因此,市面上也出现了很多的推理框架,用于降低模型推理延迟以及提升模型…

即兴语录-即兴小索奇语录

如果你想要实现自己的梦想,就不能害怕失败。因为失败是成功的垫脚石。 谁说失败了就一定是坏事?其实每一次失败都是一次成功的垫脚石。只有经历过失败的人,才能更好地理解成功的滋味。

处理器中的TrustZone之安全状态

在这个主题中,我们将讨论处理器内对TrustZone的支持。其他部分则涵盖了在内存系统中的支持,以及建立在处理器和内存系统支持基础上的软件情况。 3.1 安全状态 在Arm架构中,有两个安全状态:安全状态和非安全状态。这些安全状态映射…

改善你的登录页:登录设计的极致指南!

登录页面相当于产品的立面。无论是网站还是APP,用户打开后,首先映入眼帘的就是登录页面,用户在这里进行下一步的操作。如果登录页面的UI设计错误,界面视觉混乱,往往会在用户详细了解产品之前关闭并离开。希望大家通过这…

【qml入门系列教程】:qml QtObject用法介绍

作者:令狐掌门 技术交流QQ群:675120140 博客地址:https://mingshiqiang.blog.csdn.net/ 文章目录 QtObject 是 Qt/QML 中的一个基础类型,通常用作创建一个没有 UI 的(不渲染任何东西的)纯逻辑对象。可以使用它来组织代码、存储状态或者作为属性和方法的容器。 以下是如何…

dp-拦截导弹2

所有代码均来自于acwing中的算法基础课和算法提高课 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度, 但是以后每一发炮弹都不能高于前一发的高度。…

Python神器:快速删除文本文件中指定行的方法

更多资料获取 📚 个人网站:ipengtao.com 1. 简介 文件操作是编程中的重要方面。Python作为强大的编程语言,提供了处理文件的能力。删除特定行是文件处理中常见的需求。 2. 打开文件和读取内容 当打开文件并读取其内容时,open(…

Windows下打包C++程序无法执行:无法定位程序输入点于动态链接库

1、问题描述 环境&#xff1a;CLionCMakeMinGW64遇到问题&#xff1a;打包的exe无法运行&#xff0c;提示无法定位程序输入点于动态链接库。 2、解决思路 ​ 通过注释头文件的方式&#xff0c;初步定位问题是因为使用了#include <thread> 多线程库引起的。而且exe文件…

机器人学英语

我的prompt i want to you act as an english language teacher/asistant to help me study english, you could teach me in such a way: you ask me questions and i answer them, and you help me correct the grammer or word mistakes in my expression and polish my par…