네트웍 서버 프로그램에서 client 접속 차단 기능에 대한 flow review 좀 부탁합니다.
글쓴이: trymp / 작성시간: 일, 2009/05/17 - 11:28오후
안녕하세요. 질문 드릴께 있는데요.
100개 정도의 client 가 붙는 서버 프로그램에서 접속해 있는 client 중 어떤 목적으로 인해
접속을 끊고 강제차단하고자 합니다. key 값은 client IP 가 될수도 있고요. 로그인한 ID 값이
될수도 있습니다.
그래서 생각한 것이..
1) message queue 라는 자료구조를 하나 만들고 지워야 할 client 가 발생시 해당 IP를
MQ 를 이용해서 전달합니다.(IPC) 서버프로그램 내부에서 쓰래드를 돌려서 message queue
에 도착한 client IP 값이 있는지 검사하고 있을 경우 해당 client 접속 끝고 차단.
없는 경우 아무것도 하지 않고, 1초를 sleep 후 다시 검사합니다. 1초마다 반복적 검사
2) 공유메모리를 이용해서 차단해야 할 client가 생길 경우, 공유메모리에 해당 IP를 쓰고,
서버프로그램쪽에 USER DEFINE signal 을 kill 명령으로 보냅니다.
서버프로그램에서는 signal handler() 를 등록하고 해당 signal 이 올 경우, 공유메모리를
읽어서 해당 client를 접속 차단하고 공유메모리를 초기화 시킵니다.
위 두가지 방법 중 어떤 방법이 더 좋은 것인지 알고 싶습니다.
이것이 아니더라고 더 좋은 방법 알려주시면 감사하겠습니다.
고수님들의 많은 조언 부탁드립니다. ^^
Forums:
댓글 달기