리눅스 소켓 프로그래밍 중,, epoll 관련하여 질문 드립니다..
글쓴이: zzang3757 / 작성시간: 일, 2012/07/08 - 10:12오후
이전엔 이런 현상이 없었는데,,
새로 모하나 만들어서 테스트하는데,, 이런 현상이 발생하네요..
쓰레드 2개(A, B)를 생성합니다..
쓰레드A 에서는 EPOLL 이벤트 풀에 서버소켓을 등록해놓고,, 클라이언트가 접속해오면,, ACCEPT를 처리하고
ACCEPT 에서 나온 FD를 B쓰레드로 넘겨줍니다..
B쓰레드는 A쓰레드로부터 전달 받은 FD를 자신의 EPOLL 이벤트 풀에 등록 시킵니다..
EPOLL 은 쓰레드마다 하나씩 갖고 있습니다.
클라이언트 10개가 접속한다 치면,,
A쓰레드에서 ACCEPT 를 할때,, FD가 4,5,6,7,8,9 ~ 13 이런식으로 나와야 정상이겠죠..
근데 현재는,, 클라이언트가 아무리 많이 접속해도 FD가 4만 나오네요,,,
클라이언트가 하나 연결되면 하나 끊고 하나 연결하고 이런식은 아닙니다.
코드에 소켓 끊는 부분은 하나두 없구요,,
왜 이런 현상이 발생하는 것인지 조언 부탁드립니다..
Forums:
흠, ,몬가 이상하네요,,
netstat 으로 확인해보면,, accept 될떄는 established 상태로 잘 대있는데,,
B쓰레드에서 EPOLL_ADD 를 하면,, 소켓이 닫혀 버리네요,,
이건 무슨 경우인가요 ㅜ
죄송합니다 -.-;;
epoll 관련 클래스에서,, 소켓을 닫어버리고있었네요,,, 왜 이렇게 해놨었는지,,
댓글 달기