2012-01-21 4 views
0


두 프로그래밍 언어 C 및 Java를 사용할 때 관찰자 패턴을 구현하는 가장 좋은 방법은 무엇일까요? Observer patter를 반드시 사용해야하는 것은 아닙니다. 한 클라이언트의 작업 후에 세션에 연결된 두 클라이언트 모두에게 알리기 위해 notifyall()과 같은 메소드 또는 함수를 구현하는 방법을 알아야합니다. 그것만으로 문자열 메시지를 보낼 수 있습니다.

나는 C와 클라이언트 자바에서 서버 응용 프로그램을 가지고있다.
서버에는 n 개의 게임이 있으며 각 게임에는 두 개의 클라이언트를 연결할 수 있습니다.
서버와 클라이언트는 Inet Address가있는 소켓을 사용하고 서버와 클라이언트는 send, recieve라는 두 개의 metod를가집니다.
는 나는 깨달았다 : 서버 - C를 :
- 전송 - (클라이언트가 소켓의 파일 기술자에 의해 지정됩니다) 클라이언트에 메시지를 보내
-를 받게되며이 -를 받게되며 메시지를 클라이언트 (클라이언트가 소켓의 파일 기술자에 의해 지정됩니다)
클라이언트 - 자바
에 - 전송 - (서버 소켓의 파일 기술자에 의해 지정됩니다) 서버에 메시지를 보내
-를 받게되며이 -를 받게되며 메시지를 서버 (서버 소켓 파일 descripor에 의해 지정됩니다)

서버가 로컬 호스트 127.0.0.1에서 실행 포트 예 : 10000
클라이언트도 마찬가지입니다. 클라이언트 전송 - 나는 10000

옵저버 패턴 C 및 Java

메시지 "안녕하세요 세계 \ n" 1. 실행 서버, 메시지
2. 실행 클라이언트에 대한 서버 대기와 같은 단순한 문자열입니다 포트 서버 ADRESS의 127.0.0.1에 클라이언트를 연결 서버에 메시지
3. 서버 -를 받게되며 메시지 클라이언트로 메시지를 보낼
서버는 포크
서버와 클라이언트 전송 쓰기 받았다 메시지를 사용하여 새로운 프로세스의 각 클라이언트가
4.client 종료 후 전송을 였는지를 메시지

이것은 무엇이 작동하는지입니다.

내가 어떻게해야 버튼 뭔가를 클릭하면 그들 각각은, 각 버튼이 추가 된 ActionListener 을 이미지 아이콘이, 예를 들어 16, n 개의 버튼 (JButton의)이 있습니다, 클라이언트 GUI를 나타내는 자바 스윙 클래스가 - ImageIcon을 변경하거나 변경하지 않습니다.
는 내가 구현 노력하고있어 관찰자와 같은 방법 뭔가 어떻게 든 필요가 서버에 세션과 같은이

: (게임을 나타냄)
GAME1 : CLIENT1, CLIENT2
game2 : client3, client4을
GAME3 : client5, client6
등 CLIENT1에서
1.I 버튼을 누르면 번호 (15)는, 클라이언트는 "". CLIENT1 더 버튼을 누르면 15 "과 같은 서버 메시지에
2. 서버를 받게되며 메시지를 보내고 같은 메시지를 보내 클라이언트 1 누름 버튼 game1 (client1, client2)에 포함 된 모든 클라이언트에게 15 "를 제공합니다. 서버 메시지에서 "버튼 15의 ImageIcon 변경"과 같은 것이 필요한 경우도 있습니다.
포인트 번호 2는 function notifyAll이어야합니다.
구현 방법은 무엇입니까?조언에 대한

감사합니다.

+1

나쁜 질문이 아니므로 왜 downvotes입니까? – asgs

답변

1

당신은 단순히

은 "목록"호스트 이름 또는 IP 주소의 배열처럼 간단 할 수있다 "통지"로 고객의 "목록"을해야합니다.

"이벤트"처리기는 목록을 차례대로 반복하여 차례대로 각 호스트에 메시지를 보냅니다.

+0

감사합니다. 나는 이미 그것에 대해 생각해 왔지만 확실하지 않았습니다. 시도해 볼게. – user1097772