Python 中 ConnectionRefusedError: [Errno 61] Connection Refused 错误
有时在设计客户端-服务器程序时,您可能会遇到错误 ConnectionRefusedError。 当您的客户端程序因某些编码问题无法连接到服务器程序时,就会发生这种情况。
本文将展示我们如何在 Python 中获取 ConnectionRefusedError。 此外,我们将通过使用必要的示例和解释来讨论该主题,以使该主题更容易理解。
Python中 ConnectionRefusedError 错误是如何产生的
正如我们已经讨论过的,这个错误主要发生在客户端程序无法连接到服务器时。 为了理解这些,让我们考虑下面共享的客户端-服务器示例程序。
让我们看一下下面的服务器程序示例代码。
import socket
def ServerProgram():
host = socket.gethostname()
port = 5000
ServerSocket = socket.socket()
ServerSocket.bind((host, port))
ServerSocket.listen(2)
conn, ClientAddress = ServerSocket.accept()
print("Connection from: " + str(ClientAddress))
while True:
ClientMsg = conn.recv(1024).decode()
if not ClientMsg:
break
print("from connected user: " + str(ClientMsg))
ClientMsg = input(' -> ')
conn.send(ClientMsg.encode())
conn.close()
if __name__ == '__main__':
ServerProgram()
请注意
,我们在上述程序中将端口设置为 5000。 现在看看我们的客户端程序。
import socket
def ClientProgram():
host = socket.gethostname()
port = 5001
ClientSocket = socket.socket()
ClientSocket.connect((host, port))
ClientMessage = input(" -> ")
while ClientMessage.lower().strip() != 'bye':
ClientSocket.send(ClientMessage.encode())
ServerMsg = ClientSocket.recv(1024).decode()
print('Received from server: ' + ServerMsg)
ClientMessage = input(" -> ")
ClientSocket.close()
if __name__ == '__main__':
ClientProgram()
我们故意在我们的客户端程序上犯了一个错误:我们将客户端程序上的端口设置为 5001。现在当您在服务器程序之后运行客户端程序时,您将收到如下所示的错误消息。
Traceback (most recent call last):
File "F:\Python\client.py", line 25, in <module>
ClientProgram()
File "F:\Python\client.py", line 9, in ClientProgram
ClientSocket.connect((host, port)) # connect to the server
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
发生此错误是因为客户端程序无法连接到服务器。 如果您先启动服务器程序,也会发生此错误。
在这种情况下,客户端程序将找不到要连接的服务器程序。
如何修复 Python 中的 ConnectionRefusedError
我们可以使用确切的服务器端口 5000 轻松修复上述错误。现在更新代码后,它将如下所示。
import socket
def ClientProgram():
host = socket.gethostname()
port = 5000 ## We fixed here.
ClientSocket = socket.socket()
ClientSocket.connect((host, port))
ClientMessage = input(" -> ")
while ClientMessage.lower().strip() != 'bye':
ClientSocket.send(ClientMessage.encode())
ServerMsg = ClientSocket.recv(1024).decode()
print('Received from server: ' + ServerMsg)
ClientMessage = input(" -> ")
ClientSocket.close()
if __name__ == '__main__':
ClientProgram()
执行客户端程序后,您将在客户端获得以下输出。
-> Hi Server
Received from server: Hi Client
-> This is a message from the client
Received from server: This is a message from the server
您将在服务器端看到以下输出。
Connection from: ('192.168.0.159', 11418)
from connected user: Hi Server
-> Hi Client
from connected user: This is a message from the client
-> This is a message from the server
请注意,在运行客户端程序之前必须先运行服务器程序; 否则,你会得到同样的错误。
请注意,此处讨论的命令和程序是用 Python 编程语言编写的。
相关文章
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。 此外,我们将通过使用必要的示例和解释来讨论该主题,以使该主题更容易理解。
修复 windows 中 Python错误 Command cl.exe Failed: No Such File or Directory
发布时间:2023/05/16 浏览次数:124 分类:Python
-
pip 是 Python 的一个工具,允许您安装和管理包。 修复 Windows 中 command 'cl.exe' failed:No such file or directory 错误
Python 运行脚本错误 OSError: [Errno 8] Exec Format Error
发布时间:2023/05/15 浏览次数:187 分类:Python
-
Python 中的 subprocess 模块允许您通过创建新进程来运行命令。 使用其方法运行 shell 脚本时,有时您可能会在 Linux 中遇到 OSError: [Errno 8] Exec format error。
Python 中 AttributeError: Int Object Has No Attribute 错误
发布时间:2023/05/15 浏览次数:175 分类:Python
-
修复 Python 错误 AttributeError: 'int' object has no attribute。本篇文章重点介绍并提供了一种解决方案,以应对我们在 Python 中使用 int 数据类型时可能发生的特定错误。
Python 修复共享内存问题和锁定共享资源问题
发布时间:2023/05/15 浏览次数:136 分类:Python
-
本篇文章解释了多处理共享内存的不同方面,并演示了如何使用共享内存解决问题。 我们还将学习如何使用锁来锁定 Python 中的共享资源。
Python 中 ImportError: No Module Named Setuptools 错误
发布时间:2023/05/15 浏览次数:141 分类:Python
-
本篇文章讨论了 ImportError saying no module named setuptools 并提供了在 Python 中消除此错误的解决方案。Python 设置工具库
Python 中解决 TypeError: Can't Multiply Sequence by Non-Int of Type STR 错误
发布时间:2023/05/15 浏览次数:189 分类:Python
-
本篇文章着重于并旨在为 TypeError: can't multiply sequence by non-int of type 'str' 错误提供解决方案。Python 提供了多种数据类型,str 数据类型就是其中之一。 Python 中的字符串表示一系列 Unicode 字符,用
Python 中 NameError: The OS Module Is Not Defined 错误
发布时间:2023/05/15 浏览次数:112 分类:Python
-
os 模块提供了使我们能够与操作系统交互的函数和依赖项。如果在没有先导入os模块的情况下使用os模块函数,会导致错误,即NameError: the OS module is not defined in Python。