2011-09-21 60 views
0

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

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

所有在线教程似乎都是发送客户端发送文本的bog标准回显服务器。这些仅在了解实际套接字时才有用,但在应用于实际情况时无用。大量的病例陈述和陈述只是看起来很糟糕的发展。有任何想法吗?在这个阶段我宁愿不使用框架。

干杯,

Tim。

回答

3

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

+5

+1:如果你打算重新发明车轮,确保它有一个更好的车轮,值得额外的努力。 –

1

我建议你要么使用RMI,要么详细看它,这样你就可以确定你将如何做不同的事情。至少我建议你在尝试自己做之前先玩RMI来看看它是如何工作的。

0

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

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