Danke für eure Hilfe.
Die Trennung ist notwendig da man im Grunde genommen Nachrichten und Befehle schicken können soll. Das ganze ist eigentlich auch nur zu Übungszwecken und wird so nie wirklich eingesetzt, außer es bietet sich an, warum dass ganze mit der Übertragung nur zufällig klappt leuchtet mir allerdings nicht ein. Ich dachte TCP wurde extra gemacht um Dateien 100 % Sicher zu übertragen.
Das mit dem "/" als Trennsymbol erscheint mir im Nachhinein auch nicht als akzeptable Lösung, deshalb habe ich die Syntax der zu übertragenden kommandos überarbeitet und ich glaube ich habe eine Lösung gefunden.
Ein command wäre daher z.B. [msg] oder [shutdown], wobei bei msg der Text dahinter nicht weiter in ein Argument und einen wert getrennt wird.
PS: ICH SCHREIBE DIE KLAMMERN MIT
Neuer Server:
Code: Alles auswählen
import socket
helplist = "[command][arg-wert]"
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
try:
while True:
command = input()
if command == "[help]":
print(helplist)
else:
print(">> "+command)
conn.send(command.encode('utf-8'))
finally:
print("socket closed")
conn.close()
und der Client, der aber bist jetzt nur die Nachricht erkennt. Ich poste in so ner halben nochmal den neuen wenn ich weiter bin:
Code: Alles auswählen
# Client
import socket
HOST = 'localhost'
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
recived = s.recv(1024)
msg_1 = recived.decode()
msg_2 = msg_1.replace("[", "")
msg_list = msg_2.split("]")
print(msg_list)
command = msg_list[0]
raw_arg = msg_list[1]
if command == "msg":
print(">>"+raw_arg)