ConnectionRefusedError: [Errno 111] Verbindung abgelehnt
-
Warum der
ConnectionRefusedError: [Errno 111] Connection failed
in Python auftritt -
So lösen Sie den
ConnectionRefusedError: [Errno 111] Verbindung abgelehnt
in Python - Abschluss
Dieser Fehler weist darauf hin, dass der Client keine Verbindung zum Port auf dem System des Serverskripts herstellen kann. Da Sie den Server anpingen können, sollte dies nicht der Fall sein.
Dies kann viele Gründe haben, z. B. falsches Routing zum Ziel. Die zweite Möglichkeit besteht darin, dass Sie eine Firewall zwischen Ihrem Client und Server haben, die sich entweder auf dem Server oder auf dem Client befinden kann.
Es sollten keine Router oder Firewalls vorhanden sein, die die Kommunikation stoppen könnten, da sich Server und Client basierend auf Ihren Netzwerkadressen im selben lokalen Netzwerk befinden sollten.
Warum der ConnectionRefusedError: [Errno 111] Connection failed
in Python auftritt
Dieser Fehler tritt auf, wenn der Client aufgrund einer ungültigen IP oder eines ungültigen Ports nicht auf den Server zugreifen kann oder wenn die Adresse nicht eindeutig ist und von einem anderen Server verwendet wird.
Der Fehler Verbindung verweigert
tritt auch auf, wenn der Server nicht läuft, sodass der Client nicht auf den Server zugreifen kann, da der Server die Verbindung zuerst akzeptieren sollte.
Codebeispiel:
# server code
import socket
s = 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 socket
s = socket.socket()
host = "192.168.1.2"
port = 1717
s.connect((host, port))
print(s.recv(1024))
s.close
Ausgang:
socket.error: [Errno 111] Connection refused
So lösen Sie den ConnectionRefusedError: [Errno 111] Verbindung abgelehnt
in Python
Versuchen Sie, die Empfangsbuchse so zugänglich wie möglich zu halten. Vielleicht würde die Erreichbarkeit nur auf einer Schnittstelle stattfinden, was das Local Area Network nicht beeinträchtigen würde.
Andererseits kann es vorkommen, dass er ausschließlich auf die Adresse 127.0.0.1
lauscht und Verbindungen von anderen Hosts unmöglich macht.
Codebeispiel:
import socket
s = 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 socket
s = socket.socket()
host = socket.gethostname()
port = 1717
s.bind(("", port))
s.connect((host, port))
print(s.recv(1024))
s.close()
Ausgang:
Got connection('192.168.1.2')
The meeting is at 10 am
Wenn Sie den Befehl python server.py
ausführen, erhalten Sie die Meldung Got connection
. Gleichzeitig mit dem Ausführen des Befehls python client.py
erhalten Sie eine Nachricht vom Server.
Die DNS-Auflösung kann der andere Grund für dieses Problem sein. Da socket.gethostname()
den Hostnamen zurückgibt, wird ein Fehler zurückgegeben, wenn das Betriebssystem ihn nicht in eine lokale Adresse übersetzen kann.
Das Linux-Betriebssystem kann die Hostdatei bearbeiten, indem es eine Zeile hinzufügt.
host = socket.gethostname()
port = 1717
s.bind((host, port))
Verwenden Sie gethostbyname
host = socket.gethostbyname("192.168.1.2")
s.bind((host, port))
Daher müssen Sie auf Client- und Serverseite die gleiche Technik verwenden, um auf den Host zuzugreifen. Zum Beispiel würden Sie das oben beschriebene Verfahren im Fall eines Kunden anwenden.
Sie können auch über den lokalen Hostnamen hostnamehost = socket.gethostname()
oder den spezifischen Namen für den lokalen Host host = socket.gethostbyname("localhost")
zugreifen.
host = socket.gethostname()
s.connect((host, port))
host = socket.gethostbyname("localhost")
s.connect((host, port))
Abschluss
ConnectionRefusedError
in Python tritt auf, wenn der Client keine Verbindung zum Server herstellen kann. Mehrere Gründe sind, dass der Client die IP- oder Portadresse nicht kennt und der Server nicht läuft, wenn der Client eine Verbindung herstellen möchte.
Es gibt mehrere oben erwähnte Methoden, um dieses Verbindungsproblem zu lösen.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
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