跨两个Java应用程序同步编辑纯文本

时间:2013-03-30 08:18:10

标签: java networking text synchronization

好的,我过去几天一直在研究如何做到这一点,而且我还没有真正找到解决方案或例子。基本上,我有一个服务器/客户端系统设置,以便我可以在两个Java应用程序之间发送和接收文本。我无法弄清楚如何保持文本彼此同步。 (像Google Docs这样的东西)

如果有人可以指出我正确的方向或显示/链接我的例子,将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

蛮力的方式是只要在更新时发送整个文本blob,让对方同步到它。

这种方法存在两个主要问题:

  1. 如果文本blob真的很大,那么就会有来回发送的冗余数据
  2. 如果双方都进行了许多并发更改,可能会出现合并问题,特别是如果他们正在编辑文本的完全相同区域
  3. 第二个问题可以通过某种确认回复来减轻,这样你就可以知道更新的blob是否在另一方被“接受”了。这样,双方就数据的有效状态保持“一致”。但是,如果任何一方都不承认彼此的变化(无论出于何种原因),这仍然可以解决。

    我能想到的唯一其他一般想法是利用版本控制系统使用的某些库,如SVN或GIT。这些可能具有很好的差异和合并功能,可以使更新更容易。仅发送差异也可以缓解上面的问题#1。