Ich bin neu im TCP/IP-Protokoll und möchte einen Server für einen Chat in C++ erstellen.Unterstützt TCP nicht druckbare Zeichen?
Vorerst habe ich beschlossen, alle meine Übertragungen mit einem Zeichen zu beginnen, um zu sagen, was als nächstes kommt (eine Anmeldeanforderung, eine Nachricht zum Posten, der Benutzername eines Clients, ...).
Also verwende ich Werte wie 0x01, 0x02, ... für was mit Login, Informationsanforderung, ... und 0x10 für die Nachrichten verwandt ist.
Hoffentlich, wenn ich versuche, mit einem anderen Programm, das ich erstellt habe, eine Verbindung mit meinem Server zu verbinden, bekomme ich eine Übertragung vom Server, die mit 0x01 beginnt (also alles noch in Ordnung ist), aber dann wenn ich mit etwas von 0x03 antworten , der Server empfängt es nur, wenn ich den Klienten töte ...
Ich denke, dass es die Auswahlfunktion ist, die nicht sagt, dass es etwas zu lesen gibt.
Ist das normal?
Und wenn ja, sollte ich diese Werte durch Werte ersetzen, die druckbar sind und keine besondere Bedeutung haben?
TCP arbeitet mit Bytes, also Werte 0-255 unabhängig davon, ob sie von nicht druckbaren Zeichen druckbar sind. Wählen Sie einen völlig anderen Ansatz. Setzen Sie alle in eine Nachricht mit Header. –
Ja, TCP ist ziemlich glücklich mit binären Daten. Teilen Sie die relevanten Abschnitte sowohl von Ihrem Client und Server/ –
@ ErikŠťastný Aber funktioniert auch Auswahl mit 0-255 Werte? – dido22