2010-12-13 4 views
1

서버 소켓 프로그램을 설계해야합니다. 요구 사항은 클라이언트의 각 연결이 서로 다른 스레드에 있습니다.소켓 서버 응용 프로그램 작성

도전 과제는 이제 서버가 두 개의 클라이언트 클라이언트 A와 클라이언트 B와 연결되어 있다고 가정합니다. 두 개의 다른 스레드에 있습니다. 서버가 클라이언트 A 또는 클라이언트 B에서 일부 메시지를받을 때

내 응용 프로그램 요구 사항이며,이 메시지를 처리 ​​한 후에는 클라이언트 A 및 B 클라이언트 모두에 메시지를 보내드립니다

당신이 될 것입니다 무엇을 제안시겠습니까 그것을위한 올바른 접근 방법. 한 번에 어떤 고객이 열려 있는지 알아 보는 방법.

+0

무례한 것은 아니지만 질문에 대한 답변을 수락하고 싶을 수 있습니다. 그것은 사람들이 대답을 인정함으로써 자신의 노력을 소중히 여긴다는 것을 알려줍니다. – Raphael

답변

1

정말 간단합니다. 두 스레드가 공유하고 데이터 구조가 concurrent access에서 보호됩니다. message queue 패턴을 기반으로 전송을 디자인 할 수 있습니다.

+0

좋아, 그럼 당신은 목록에 연결된 소켓 설명자를 변수에 삽입한다는 것을 의미합니다. 연결되어있는 각 스레드에서 목록을 처리하고 메시지를 보낼 것입니다. 그리고 보내기 전에 일부 잠금을 가져와야합니다. – user382541