[질문] 다중소켓 프로그래밍에서 접속이 자꾸 끊기는 이유?
2개의 서버포트를 이용하여 다중소켓 프로그래밍을 하고 있습니다.
두개의 Listening Soket를 만들고 이 소켓은 단지
클라이언트로부터의 Accept을 처리하기 위한 용도로 사용되며
이 소켓을 통해 클라이언트와 연결처리를 하게 됩니다. 즉, 중계역활을
하는 것이지요. 최대 각각의 포트로 20명의 클라이언트가 접속을
할수 있습니다.
첫번째 포트로 클라이언트로부터 접속요구가 들어오고 나서
두번째 포트로의 접속허가를 내주면 클라이언트에서 다른 소켓을 이용하여
두번째포트로 접속하게 됩니다.
여기서 첫번째 포트는 필요할때만 잠깐씩 연결할때 사용되며 두번째 포트는
지속적으로 연결할때 사용됩니다.
즉, 첫번째포트는 제어신호를 주고받기 위해 두번째 포트는 영상데이타를
받기 위해 사용되는 겁니다. 여기서 제가 무엇을 만들고 있는지 짐작이 가시지요? ^^
그런데 여러개의 클라이언트가 두번째 포트로 연결된 상태에서 가장 먼저
접속된 클라이언트의 접속이 해제되면 두번째 포트와 연결되어 있는
모든 클라이언트와의 연결이 해제가 되는 문제가 발생하고 있습니다.
그렇다고 연결을 끊을시 모든 클라이언트의 연결을 우정 끊는건 아닙니다.
제가 몇일동안 코드를 보고 있지만 잘못된 부분을 못 찾겠네요.
이때 정상적으로 접속해제를 시켰을때 소켓단에서의 에러메세지는 EPIPE가
나오며 그외에 어떤 알수 없는 문제로 끊기는 클라이언트는 EBADF(잘못된 디스크립터)에러로 끊깁니다.
여기서 첫번째포트로도 간혹 지속적인 연결을 할경우가 있지만 위에서의
두번째포트에서처럼 문제는 없습니다.
도저히 왜 이런증상이 나오는지 이해가 안갑니다.
많은 분들의 조언을 부탁드립니다. 이것때문에 벌써 3일정도가 지났네요.
소스를 모르니..ㅡ.ㅡ
소스를 모르니..ㅡ.ㅡ
문근영 너무 귀여워~~
SIGPIPE로 검색해보세요.상당히 자주 나오는 질문입니다.오
SIGPIPE로 검색해보세요.
상당히 자주 나오는 질문입니다.
오류잡으시길를 :)
[quote="alsong~"]SIGPIPE로 검색해보세요.상당히 자
질문은 요지를 잘못 파악했네요.. ㅈㅅ :oops:
제가 너무 질문을 잘못한것 같네요.위의 소켓프로그램쪽으로는 아무 이상
제가 너무 질문을 잘못한것 같네요.
위의 소켓프로그램쪽으로는 아무 이상이 없었으며
단지 다른 부분의 장치를 액세스하는 부분에서
꼬이는 문제였습니다.
참 허탈하더군요.
제글을 읽고 고민을 조금이라도 하셨던 분들께 죄송하며
감사드립니다. ^^
댓글 달기