IPC 1:n 서버, 클라이언트 구성?
글쓴이: 익명 사용자 / 작성시간: 월, 2002/04/22 - 10:09오전
안녕하세요..고수님들.
제가 리눅스 프로그램한지 별루 안돼여...
그래서 고수님들의 조언을 듣고자 합니다.
먼저, 공유메모리나 메시지큐를 이용한 TCP/IP소켓과 같이 서버, 클라이언
트구성을 하고싶습니다.
즉 1대 n 구성이죠...중요한것은 소켓처럼 클라이언트가 정상적으로 종료
되든 아니면 비정상적으로 종료되면 서버가 인지를 해야 되는데 방법이 없
을까요?
소켓을 이용하면 금방 해결되겠지만,,,공유메모리나 메시지큐를 사용하고
싶거든요...
공유메모리나 메시지 큐로 프로그래밍을 해봤는데 위와 같이 구현하기 어
렵군요...부탁합니다. 많은 조언 부탁할께여...
Forums:
FIFO를 추천합니다.
상대가 죽었는지 어떤지를 알려면...
Select를 사용해야 하고 이 Select는 FIFO, Socket, Pipe에서 작동합니다.
지금 님이 원하시는 것은 아마도 한 Machine에서 1n 서버를 구현하면서
Server가 Client의 상태를 알수 있는 방법이 없을까 하는 것같습니다만..
그럴려면 FIFO밖에는 달리 더 좋은 방법이 없을 것 같네요.
말씀하신 Shared Memory나 Message Queue로는 않 될 것 같습니다.
Re: FIFO가 무난하긴 한데..
FIFO가 좋기는 합니다.
기본적으로 FIFO에 클라이언트로 접근했는데,
서버가 죽으면 클라이언트측에서는 SIGPIPE를
받아볼수 있으니, 관리도 쉽게 할수 있을거구요.
그러나 FIFO자체가 선입선출 방식이기 때문에
다중의 클라이언트를 처리할때 메시지를
클라이언트 별로 처리가 어렵다는 단점이 있습니다.
서버에서 받는거라면 클라이언트가 많아도 문제가
없겠지만, 클라이언트에 선별적으로 메시지를 보내고자 할때는 문제가 됩니다. 누가 메시지를 받을지
알수가 없거든요.
그래서 보통 각 클라이언트마다 FIFO를 생성시키는 방법을 씁니다. 무난하긴 하지만 음 좀 지저분해 진다라는 단점이 있지요.
Re^2: 위 답변들을 해주신 분들께 감사합니다.(내용 없음)
"
댓글 달기