Java TCP服务器 - 客户端设计解决方案

时间:2011-09-21 15:39:42

标签: java oop design-patterns tcp client-server

我正在开发一个高度面向对象的解决方案,(即,我希望尽可能少的耦合,大量的可重用性和模块化代码,良好的设计模式使用,干净的代码等)。我目前正在实现应用程序的客户端 - 服务器方面,我是新手。我知道如何使用套接字,以及如何发送流并接收它们。但是,我不确定如何设计我的解决方案。

TCP Java解决方案有哪些模式(如果有)?我将通过网络发送大量序列化对象,如何处理不同的请求/对象?事实上,我如何处理请求本身?我是否将我正在发送的每个对象包装在另一个对象中,然后当对象到达时我将其解析为“命令/请求”,然后相应地处理其中包含的对象?这是我正在努力的一般设计。

所有在线教程似乎都是bog标准的echo服务器,它们会发回客户端发送的文本。这些仅在学习实际套接字时有用,但在应用于实际情况时无用。很多案例陈述和if陈述似乎只是发展不佳。有任何想法吗?我宁愿在这个阶段不使用框架。

干杯,

3 个答案:

答案 0 :(得分:3)

考虑使用更高级别的协议,然后使用TCP / IP,不要重新发明轮子。 rmi是一个很好的选择,你应该能够找到很好的教程。

答案 1 :(得分:1)

我建议你使用RMI,或者详细查看它,这样你就可以确定如何以不同的方式做事。至少我建议您在尝试自己动手之前使用RMI来了解它的工作原理。

答案 2 :(得分:0)

如果高性能和低延迟不是主要要求,那么只需使用现有解决方案。 如果您决定使用rmi而不是考虑将J2EE与EJB结合使用 - 它将为您提供rmi之上的事务管理。

否则,如果您需要极低的延迟,请查看在tcp之上使用自定义协议的现有解决方案的来源。 例如,OpenChord发送序列化的Request和Response对象,Project Voldemort使用自定义消息进行少量操作。