Aquí hay una pregunta genérica. No estoy en busca de la mejor respuesta, solo me gustaría que expreses tus prácticas favoritas.¿Cómo implementar un protocolo de red?
Quiero implementar un protocolo de red en Java (pero esta es una pregunta bastante general, me enfrenté a los mismos problemas en C++), esta no es la primera vez, como lo he hecho antes. Pero creo que me falta una buena forma de implementarlo. De hecho, generalmente se trata de intercambiar mensajes de texto y algunos búferes de bytes entre hosts, almacenar el estado y esperar hasta que llegue el siguiente mensaje. El problema es que generalmente termino con un montón de cambios y más o menos complejas si las declaraciones reaccionan a diferentes estados/mensajes. Todo esto generalmente se complica y es difícil de mantener. Sin mencionar que a veces lo que sale tiene algún "punto ciego", me refiero a los estados del protocolo que no han sido cubiertos y que se comportan de una manera impredecible. Traté de escribir algunas clases de máquina de estado, que se encargan de verificar los estados de inicio y fin de cada acción de forma más o menos inteligente. Esto hace que programar el protocolo sea muy complicado ya que tengo que escribir líneas y líneas de código para cubrir todas las situaciones posibles. Lo que me gustaría es algo así como un buen patrón, o una buena práctica que se utiliza en la programación de protocolos complejos, fácil de mantener y ampliar y muy legible.
¿Cuáles son sus sugerencias?
En el libro "Desing Patterns" (http://en.wikipedia.org/wiki/Design_Patterns) este patrón se aplica al problema involucrado. – Dmitry
He echado un vistazo a la wikipedia y parece muy inteligente y resolvería muchos problemas que tengo. Debería comprar ese maldito libro de Patrones de Diseño ... :) – gotch4
@ gotch4 - Navegar a través de una buena librería. GOF es uno de esos artículos en los que se supone que debes hacer una genuflexión en público, pero la verdad es que ahora hay mejores libros de patrones. La mayoría cubrirá el patrón del estado, así que compre uno con el que se sienta cómodo. – Duck