pychat/client.py
2023-11-30 00:22:33 +01:00

47 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()