多Client同步Server端数据

在问题之前,首先本博中总结的Java中的几种通讯模式 ,而我的问题:多个Client端:JAVA Swing GUI 对应一个Server端,如何在不同的Client上及时获取Server上的数据,并且一个Client上对数据的操作,较快的在另一个Client上展示出来?目前采用的Client和Server之间的通讯方式采用的是RMI和Socket。

怎么解决呢?

(1)Client端设置定时器,不断的请求Server,这个实现起来貌似很简单,

(2)Server主动推送更新的数据, 这里有一篇http://yangzb.iteye.com/blog/424024 介绍了一些WEB Server推送技术,是Server端主动推送数据到浏览器的技术--- Pushlet。但是对于非Web环境下的推送技术怎样实现呢?


使用阻塞式的Socket么?(非阻塞的Socket为NIO)每个Client和Server之间有一个Socket Connection,如下例中的ObjectInputStream (socket.getInputStream)方法readObject()就是阻塞式的,它会等待返回,这个Socket Connection要为长连接,要进行保持,如果出现异常的情况,如网络异常,应该重新建立连接。好吧,试试。


目前为了减少数据量交互,对Client端接受的数据在本地使用缓存和文件的方式存储到本地,但是考虑到性能,以后在每一个Client端上都有一个数据库,而Server端也有自己的数据库,使Client和Server端数据库进行单独同步,可能比较好。


有一篇文章不错:Java桌面程序打包成exe可执行文件

http://www.cnblogs.com/icewee/articles/2073203.html

可以非常方便找到free ICON的网站

http://www.easyicon.net/iconsearch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值