首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LAN应用程序

LAN应用程序
EN

Stack Overflow用户
提问于 2012-04-03 21:54:25
回答 3查看 779关注 0票数 0

我有一个由3台PC组成的局域网。安装在PC1中的是MS数据库。这台计算机将充当服务器。

PC2和PC3将各自拥有一个桌面应用程序,用于显示来自PC1的数据。

我这里的问题是如何使每台PC (PC2和PC3)具有相同的数据副本。假设在PC2中,Employee0001的名字从约翰更新为彼得,并提交保存。如果不刷新PC3中的应用程序,employee 0001的名字仍然是John。

解决这一问题的最佳方法是什么?我的编程水平不是很好,但我对所有的建议/概念/示例/等等都持开放态度。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-03 22:04:28

如果您希望在数据更改后立即更新所有客户端,那么您需要某种通知系统,无论是轮询方式还是推送方式。

例如,您可以使用带有回调契约的WCF来实现推送机制。您的客户端PC将需要实现相关的回调接口,并始终连接到服务器PC的WCF服务。回调调用实际上可以携带新数据。每个客户端都需要过滤掉由该客户端自己的更改产生的通知。推送机制是一种快速有效的方法。

检查WCF堆栈溢出应答,例如this回调。

Pull机制将需要所有客户端应用程序上的后台线程检查服务器上的更改。您可以使用带有版本计数器的单独数据库表,每当服务器上发生任何更改时,该计数器都会递增。客户端应用程序将轮询计数器,与其拥有的最新版本进行比较,并在发现新版本时更新数据。然而,这是一种效率较低的机制,因为您需要频繁地进行轮询,并在每次有新版本时获取所有数据。您可以使版本控制更复杂,并检测到底发生了什么变化,但对于多个客户端,这可能会很快变得复杂。总体而言,它的伸缩性不是很好。它通常比推送简单,但对于没有太多数据的简单应用程序来说,它就足够了。

票数 2
EN

Stack Overflow用户

发布于 2012-04-03 22:00:22

你需要告诉其他机器什么时候更新。这可以通过使用UDP广播在网络上发送的简单消息来实现。则另一台PC可以执行其刷新方法。

票数 0
EN

Stack Overflow用户

发布于 2012-04-03 21:59:53

实际上,utivich...this和web应用程序是一样的。这是一个常见的问题。通常,在重新加载记录之前,其他客户端将拥有陈旧的数据,或者当它们保存时,服务器可能会根据sql时间戳对陈旧的数据抛出异常。然而,使用桌面应用程序,您可以设置一个具有事件通知的系统,就像聊天应用程序一样,其中服务器将事件推送给订阅者,而客户端将能够更新记录或您需要做的任何事情。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9994756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档