2014-04-23 187 views
0

這裏是我的簡單的情況下,每一個客戶端的一個LAN上的PC:跨客戶端GUI更新


Client 1: 

Add the maximum number: _ 
Maximum number: 0 

Client 2: 

Add the maximum number: 
Maximum number: 0 

所以客戶端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服務器2012(用於保存號碼)。

回答

0

有許多方法:

1-輪詢:每個用戶請求在規則的間隔DB服務器用於更新

Pros: very easy to implement, secure 
    Cons: consumes too much bandwith and db server process 

2-集中TCP服務器:在專用機器監聽連接,每個客戶端連接到它並通知事件,服務器將這些事件重定向到相應的客戶端。

Pros: minimum bandwith, not much process required 
    Cons: more complex to program, need a machine to act as server 

3-分散UDP通知:如果客戶端在同一個局域網,那麼你就可以播放該網絡中的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時間內它們沒有收到響應再次廣播數據包,這樣你將確保接收。