【发布时间】:2020-09-11 09:29:55
【问题描述】:
我是 python 套接字编程的初学者,我必须从服务器向客户端发送消息。我有 2 个 python IDLES,一个用于服务器,一个用于客户端。我已经制作了没有错误的服务器文件,但是当我在客户端文件中创建连接套接字并尝试连接到服务器时出现错误:
clientSocket.connect((servername,port))
ConnectionRefusedError: [WinError 10061] no connection could be made because the target machine actively refused it
我不知道如何处理此错误,如果您能帮助我指导我,我将不胜感激。 先感谢您。 我的代码:
服务器:
from socket import *
port = 1234
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('',port))
serverSocket.listen()
print("Server has started")
data = "Network labs"
while True:
connectionSocket , addr = serverSocket.accept()
connectionSocket.send(data)
connectionSocket.close()
客户:
from socket import *
port = 1234
servername = 'localhost'
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((servername,port)) #this is where the error happens
【问题讨论】:
-
可能是权限问题或防火墙问题。尝试使用 > 5000 的端口并检查操作系统的防火墙规则。
-
你的客户端和服务器真的在同一个主机上运行吗?
-
@tdelaney 尝试端口 > 5000 为什么? 1024以下的端口需要特权。而且很难看出它是如何成为 localhost 中的防火墙问题的。
-
@user207421 - 我依赖于操作系统。 5000+ 是一个可能的范围,但不能保证。
-
@tdelaney 我只做了 30 年,但在我绑定过套接字的每个操作系统中,它都是 1024。如果你有反例是 5000,甚至是 1025,请出示。