Wie implementiere ich ein Netzwerkprotokoll?

Hier ist eine allgemeine Frage. Ich bin nicht auf der Suche nach der besten Antwort, ich möchte nur, dass Sie Ihre Lieblingspraktiken ausdrücken.

Ich möchte ein Netzwerkprotokoll in Java implementieren (aber dies ist eine eher allgemeine Frage, ich hatte die gleichen Probleme in C ++), dies ist nicht das erste Mal, wie ich es zuvor getan habe. Aber ich denke, ich vermisse einen guten Weg, um es umzusetzen. In der Regel geht es darum, Textnachrichten und einige Byte-Puffer zwischen Hosts auszutauschen, den Status zu speichern und bis zur nächsten Nachricht zu warten. Das Problem ist, dass ich normalerweise eine Reihe von Schaltern und mehr oder weniger komplexen if-Anweisungen habe, die auf unterschiedliche Zustände / Meldungen reagieren. Das Ganze wird in der Regel kompliziert und schwer zu pflegen. Ganz zu schweigen davon, dass das, was herauskommt, manchmal einen "blinden Fleck" hat, ich meine Status des Protokolls, der nicht abgedeckt wurde und der sich auf unvorhersehbare Weise verhält. Ich habe versucht, einige Zustandsmaschinenklassen aufzuschreiben, die sich mehr oder weniger schlau darum kümmern, Start- und Endstatus für jede Aktion zu überprüfen. Dies macht das Programmieren des Protokolls sehr kompliziert, da ich Zeilen und Codezeilen schreiben muss, um jede mögliche Situation abzudecken. Was ich möchte, ist so etwas wie ein gutes Muster oder eine bewährte Methode, die zum Programmieren komplexer Protokolle verwendet wird. Sie ist einfach zu pflegen, zu erweitern und sehr gut lesbar.

Was sind deine Vorschläge?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage