TCP ist stream-basiert, dh, Sie senden Bytes, ohne dass diese sich notwendigerweise in einer "Nachricht" befinden, sodass der Empfänger eine halbe Nachricht oder ein und zwei Drittel der Nachrichten erhalten kann.Senden von Nachrichten in einem TCP-Stream
Also in etwas wie ein Spiel, in dem jede Nachricht eine feste Größe ist, wenn ich einen Teil einer Nachricht erhalte, könnte ich es einfach in einem Puffer behalten, bis ich den anderen Teil erhalte. Das ist ein bisschen mühsam, aber gibt es ein anderes auf Nachrichten basierendes zuverlässiges Protokoll? Es gibt wahrscheinlich, aber keine sind im Betriebssystem wie mit TCP und UDP implementiert, so dass ich einige Bibliothek verwenden müssen, was gut ist, solange es einfach zu bedienen ist.
Ich könnte immer ein einigermaßen zuverlässiges UDP-Protokoll machen. Was schlägst du vor?
Als diese Frage erneut auftauchte, fiel mir ein, dass ich tatsächlich damit fertig wurde. – slartibartfast
Der Begriff "unzuverlässig" um UDP kann Leute davon abhalten, es zu benutzen, aber meistens bedeutet es, dass zusätzliche Zuverlässigkeitsmaße nicht wie TCP in das Protokoll eingebaut sind. In einigen Kontexten werden Sie möglicherweise nicht benötigt oder sogar reproduziert, z. wenn Ihre Anwendung fehlertolerant ist oder wenn das Netzwerkdesign und die Datenlast die Fehler auf tolerierbare Werte reduzieren. In Echtzeitkontexten könnten diese Extras sogar ablenken. Für Ihren Gaming-Kontext ist UDP, das auf diese Weise verwendet wird, sehr verbreitet. – omatai