client 구별하기..

8 views
Skip to first unread message

samdory

unread,
Jun 16, 2006, 3:09:28 AM6/16/06
to kaug
안녕하세요..

C++NPv2_WFMO_Reactor_Log_Server 샘플을 사용하여 서버를
만들고 있는데 client 여러개가 접속했을때 그 client를
구별하여 각각에 맞는 메시지를 주고 받는
프로그램을 짜고 있습니다.

기능을 구체적으로 설명드리자면 client 1가 client
2에게 request를 하는 메시지를 우선 서버로 보내면,
서버는 그 메시지를 client 2에 보냅니다. 그리고 client
2는 그 메시지에 대하여 response를 서버에게 보내고
서버는 다시 그 메시지를 client 2에게 보내는
것입니다.

그런데 샘플 코드에서 보면 Logging_Handler::log_record()
에서 recv 하기만 합니다. client 에게 메시지를
보내려면 send 를 해야하는데, 위에서 설명드린 것과
같이 client 를 구별하여 보내야 하는데 어떻게
해야할지 막혀 버렸습니다.

뭔가 클래스 디자인을 해야할 것 같은데 ace framework
에 대해 완전히 이해하지 못 하여서 인지 난감합니다.

고수님의 도움 부탁드립니다.

redpixel

unread,
Jun 19, 2006, 10:35:18 PM6/19/06
to kaug...@googlegroups.com
원래 로깅 예제자체가 로그 메세지 병목을 막기위해 그냥 전달하기만 하는거니까요. 각 핸들러에 대한 map을 만들어서 이용하세요. reactor 기반이라면 전역에 hash_map을 하나 만드셔서 처리하시는 것도 좋을 거 같습니다. (싱글쓰레드니깐 동기화 걱정은 안해도 되실듯...) 만약 task가 끼어든다면 ACE_Hash_Map_Manager에 recursive mutex 걸어서 구현하시면 될듯하고요.


06. 6. 16일에 samdory <sam...@paran.com>이(가) 작성:
Reply all
Reply to author
Forward
0 new messages