2011-12-10 152 views
1

我即将通过互联网上的tcp/ip实现服务器/客户端通信。当试图同步他们的状态时,服务器和客户端会变得有点琐碎。java通信协议

client: sends state 
server: check state and request differences 
client: sends 1 element 
server: sends ack/nak 
client: sends 1 element 
server: sends ack/nak 
. 
. 
. 
etc. 

实现此目的的最佳方法是什么?我应该使用原始套接字吗?我应该使用2个连接,每个方向一个?我应该使用框架吗?任何想法都表示赞赏。

感谢

编辑:什么是实现这一目标的最佳方式,在大负荷(千兆字节的数据),稳定性和易于实施的被优先?

..顺便说一下,客户端和服务器之间没有区别。他们可以随时转移角色,成为建立关系的人。

这可能是很好用的框架来处理重新连接等

+0

“最佳”是什么?易于执行?在某些目标平台上的性能?可扩展性?请用更多信息更新您的问题。 – maerics

回答

1

如果客户端和服务器都将是Java程序,可以考虑使用RMI的选择:

Java的远程方法调用(RMI)系统允许在一个Java虚拟机中运行的对象调用另一个Java虚拟机中运行的对象上的方法。 RMI提供了用Java编程语言编写的程序之间的远程通信。

这比试图在套接字上实现自己的协议更简单。

+0

我喜欢抽象,但恐怕设置很复杂。它必须通过互联网连接在多个平台上运行。 – Stig

1

当大负载(千兆字节的数据),稳定性和易用性优先时,实现此目的的最佳方式是什么?

从我的角度来看,这些目标是使用稳定框架而不是实现自定义解决方案的暗示。

查看Java Web服务(您可以通过Google搜索找到大量示例),并让客户端也暴露服务器接口。
我会推荐RESTful而不是SOAP服务。