Python Socket Programmierung Error?
#Server
import socket
ip_input = input("Gib deine IP an: ")
ip_input = str(ip_input)
IP_SERVER = ip_input
DISCONNECT_MESSAGE = "!DISCONNECT"
def start():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind( (IP_SERVER, 5050) )
print("Server gestartet")
server.listen()
conn, addr = server.accept()
print(f"Client with IP {conn} connected")
while True:
msg = server.recv(1024)
msg.decode("utf-8")
print(f"Message: {msg}")
if msg == DISCONNECT_MESSAGE:
server.close()
conn.close()
if __name__ == "__main__":
start()
#Client
import socket
def start():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.connect( ("192.168.1.100", 5050) )
while True:
msg = str(input("Your Message: "))
msg = msg.encode()
server.send(msg)
answer = server.recv(1024)
answer = answer.decode("utf-8")
print(f"Antwort: {answer}")
if __name__ == "__main__":
start()
#Error
Gib deine IP an: 192.168.1.100
Server gestartet
Client with IP <socket.socket fd=372, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.1.100', 5050), raddr=('192.168.1.100', 60324)> connected
Traceback (most recent call last):
File "c:\Users\User\OneDrive\Python\Server_2.py", line 26, in <module>
start()
File "c:\Users\User\OneDrive\Python\Server_2.py", line 17, in start
msg = server.recv(1024)
OSError: [WinError 10057] Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde
2 Antworten
also irgendwie hast du da was flasch , while true , da gehört doch das server.accept() rein .
irgendwie hast du da was zusammengefrickelt . du versuchst also irgendwelche daten die ganze zeit zu bekommen die noch gar nicht gesendet wurden ?
hier wie es eigentlich läuft
msg = server.recv(1024) ->
msg = conn.recv(1024)
server ist der lauschende socket.