以下是我的简化方案,每个客户端都是局域网上的PC:
Client 1:
Add the maximum number: _
Maximum number: 0
Client 2:
Add the maximum number:
Maximum number: 0
所以客户端1 保存" 1 "作为最大数量,客户端2 应自动接收更新并更改为:
Client 2:
Add the maximum number: _
Maximum number: 1 (last updated by Client 1 on 23/04/2014 at 19:16)
使用c#winforms和sql sever 2012实现这一目标是最好的方法(用于保存数字)。
答案 0 :(得分:0)
有很多方法:
1-Polling:每个用户定期向数据库服务器请求更新
Pros: very easy to implement, secure
Cons: consumes too much bandwith and db server process
2-Centralized TCP server:专用计算机侦听连接,每个客户端连接到它并通知事件,服务器将这些事件重定向到相应的客户端。
Pros: minimum bandwith, not much process required
Cons: more complex to program, need a machine to act as server
3 - 分散式UDP通知:如果客户端位于同一个LAN中,则可以在该网络中广播UDP数据包,这样每个客户端都将收到任何客户端发送的每个通知。
Pros: minimum bandwith, 0 process required, no need for central server
Cons: it's not guaranteed a packet arrives it's destination (but in a close LAN usually they do).
所以,这些是最常见的方法,现在你必须平衡你的要求并选择一个。
在您的情况下,我会尝试使用UDP方式,如果您需要确保接收数据包,那么您的客户可以等待事件目标的响应,如果在X时间内他们不接收然后,响应再次广播该数据包,这样您就可以确保接收。