2014-04-23 2 views
0

내 간단한 시나리오, 모든 클라이언트 LAN에서 자사의 PC :크로스 클라이언트 GUI 업데이트 여기


Client 1: 

Add the maximum number: _ 
Maximum number: 0 

Client 2: 

Add the maximum number: 
Maximum number: 0 

그래서 클라이언트 11 "에 저장 "최대 수 및 클라이언트 2 shoul 최고의 aproach가 (숫자를 저장하기 위해)이 사용하는 C#을 윈폼 및 SQL 끊다 2012을 달성하기 위해 무슨


Client 2: 

Add the maximum number: _ 
Maximum number: 1 (last updated by Client 1 on 23/04/2014 at 19:16) 

: 자동으로 업데이트를받을 및 변경 거라고.

답변

0

많은 방법이 있습니다 :

1 폴링 : 전용 기계가 연결을 수신 각 : 각 사용자는 업데이트를

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

2 중앙 TCP 서버에 대한 일정한 간격의 DB 서버에 요청 클라이언트가 이벤트에 연결하고 이벤트를 알리면 서버는 해당 이벤트를 해당 클라이언트로 리디렉션합니다.

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 시간 내에 응답을 보내면 다시 패킷을 브로드 캐스트합니다. 이렇게하면 수신을 보장 할 수 있습니다.