48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
|
import socket
|
||
|
import threading
|
||
|
|
||
|
# Server-Informationen
|
||
|
HOST = '127.0.0.1'
|
||
|
PORT = 12345
|
||
|
nickname = "michi"
|
||
|
|
||
|
def receive_message(sock):
|
||
|
""" Funktion für das Empfangen von Nachrichten """
|
||
|
while True:
|
||
|
try:
|
||
|
# Empfange die Nachricht des Servers
|
||
|
msg = sock.recv(1024).decode('utf-8')
|
||
|
if not msg:
|
||
|
break
|
||
|
print(f"\r>>{msg}\n", end='', flush=True)
|
||
|
except:
|
||
|
# Schließe die Verbindung, wenn ein Fehler auftritt
|
||
|
print("Verbindung getrennt.")
|
||
|
break
|
||
|
|
||
|
def start_client():
|
||
|
""" Funktion für das Starten des Clients """
|
||
|
# Erstelle den Client-Socket und verbinde ihn mit dem Server
|
||
|
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
|
client.connect((HOST, PORT))
|
||
|
|
||
|
# Starte einen Thread für das Empfangen von Nachrichten
|
||
|
threading.Thread(target=receive_message, args=(client,)).start()
|
||
|
|
||
|
client.sendall(nickname.encode('utf-8'))
|
||
|
try:
|
||
|
while True:
|
||
|
# Lese die Eingabe des Benutzers und sende sie an den Server
|
||
|
msg = input(">> ")
|
||
|
if msg.lower() == "exit":
|
||
|
break
|
||
|
client.sendall(msg.encode('utf-8'))
|
||
|
except KeyboardInterrupt:
|
||
|
pass
|
||
|
finally:
|
||
|
# Schließe den Client-Socket
|
||
|
client.close()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
start_client()
|