ConnectionRefusedError: [Errno 61] Verbindung in Python abgelehnt

MD Aminul Islam 21 Juni 2023
  1. Wie der Fehler ConnectionRefusedError in Python auftritt
  2. So beheben Sie den ConnectionRefusedError in Python
ConnectionRefusedError: [Errno 61] Verbindung in Python abgelehnt

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.

MD Aminul Islam avatar MD Aminul Islam avatar

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.

LinkedIn

Verwandter Artikel - Python Error