ConnectionRefusedError: [Errno 61] Verbindung in Python abgelehnt
-
Wie der Fehler
ConnectionRefusedError
in Python auftritt -
So beheben Sie den
ConnectionRefusedError
in Python
Manchmal erhalten Sie beim Entwerfen eines Client-Server-Programms einen Fehler ConnectionRefusedError
. Dies trat auf, wenn Ihr Client-Programm aufgrund einiger Codierungsprobleme keine Verbindung zum Server-Programm herstellen konnte.
Dieser Artikel zeigt, wie wir in Python einen ConnectionRefusedError
erhalten. Außerdem werden wir das Thema erörtern, indem wir die notwendigen Beispiele und Erklärungen verwenden, um das Thema zu vereinfachen.
Wie der Fehler ConnectionRefusedError
in Python auftritt
Wie bereits erwähnt, tritt dieser Fehler hauptsächlich auf, wenn ein Client-Programm keine Verbindung zum Server herstellen kann. Um diese zu verstehen, betrachten wir unser unten geteiltes Client-Server-Beispielprogramm.
Schauen wir uns unten unseren Beispielcode für das Serverprogramm an.
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()
Bitte beachten Sie, dass wir in unserem obigen Programm den Port auf 5000
gesetzt haben. Werfen Sie jetzt einen Blick auf unser Kundenprogramm.
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()
Wir machen in unserem Client-Programm absichtlich einen Fehler: Wir setzen den Port im Client-Programm auf 5001
. Wenn Sie nun das Client-Programm nach dem Server-Programm ausführen, erhalten Sie eine Fehlermeldung wie die folgende.
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
Dieser Fehler ist aufgetreten, weil das Clientprogramm keine Verbindung zum Server herstellen konnte. Dieser Fehler kann auch auftreten, wenn Sie zuerst das Serverprogramm starten.
In diesem Fall findet das Clientprogramm kein Serverprogramm, mit dem es sich verbinden kann.
So beheben Sie den ConnectionRefusedError
in Python
Wir können den obigen Fehler leicht beheben, indem wir den genauen Serverport 5000
verwenden. Nachdem Sie den Code aktualisiert haben, sieht er wie folgt aus.
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()
Nach dem Ausführen des Client-Programms erhalten Sie die folgende Ausgabe auf der Client-Seite.
-> Hi Server
Received from server: Hi Client
-> This is a message from the client
Received from server: This is a message from the server
Und Sie werden die folgende Ausgabe auf der Serverseite sehen.
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
Bitte beachten Sie, dass Sie das Serverprogramm ausführen müssen, bevor Sie das Clientprogramm ausführen; Andernfalls erhalten Sie denselben Fehler.
Bitte beachten Sie, dass die hier besprochenen Befehle und Programme in der Programmiersprache Python geschrieben sind.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung