Python Programmieren - Socket Server Ich versuche zurzeit einen Socket Sever zu machen. Es kommt aber leider immer eine Fehlermeldung. Kann mir jemand helfen?
Der Server kann die Daten nur empfangen, wenn der Client und der Server auf dem selben PC laufen. Sonst funktioniert es nicht. Wie kann ich den Fehler beheben? Hier einmal die Fehlermeldung: s.connect(('127.0.0.1', 50010)) ConnectionRefusedError: [WinError 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte
Server.py :
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 50010)) server_socket.listen(1) while True: (client_socket, addresse) = server_socket.accept() print(client_socket.recv(1024))
Client.py :
import time, socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('127.0.0.1', 50010))
while True: msg = str(input("message: ")) msg = msg.encode() s.send(msg)
msg = s.recv(1024)
msg = msg.decode()
print("sent: " + msg)
print()
s.close()
2 Antworten
Ist vielleicht eine dumme Frage, aber versuchst du über die IP "127.0.0.1" auf einen anderen Rechner zuzugreifen?
Das würde nämlich nicht gehen, weil 127.0.0.1 die "localhost"-Adresse ist, also die Adresse von deinem PC.
Müsstest an der Stelle also ggf. mal versuchen die IP vom Zielrechner einzugeben?
Wenn ich die IP von ipconfig eingebe steht dort, dass ein Verbindungsversuch fehlgeschlagen ist, da die Gegenstelle nicht richtig reagiert hat.
Nicht bei CMD kam die Fehlermeldung, sondern bei dem Client.
Das liegt daran, dass du das Server-Socket nur an 127.0.0.1:50010 bindest...
Versuch mal statt
server_socket.bind(('127.0.0.1', 50010))
das zu benutzen:
server_socket.bind(('0.0.0.0', 50010))
Und natürlich im Client die Zeile
s.connect(('127.0.0.1', 50010))
anpassen, z.B. so:
server_ip = input("server ip:")
s.connect((server_ip, 50010))
Muss die Ip dann die lokale Ip sein zum Beispiel: 192.168.178.33 oder eine andere, die man auch auf deiner Website, wie www.wieistmeineip.de findet?