리눅스 소켓프로그래밍중 클라이언트 접속상태를 확인하는 방법이 없을까요?
글쓴이: wodnrrns / 작성시간: 수, 2010/10/20 - 6:21오전
서버에서 특정 스트림을 클라이언트들에게 방송 하는 형태의 서버를 만들고 있습니다.
이때 서버에서 클라이언트의 접속이, 해제가 자유롭게 하기 위해서 접속된 클라이언트의 소켓을 확인하는 작업때문에 고민중입니다.
우선 실시간성과 메모리 문제로 뮤텍스와 세마포를 사용하지 못해서 nonblock 소켓을 사용하고 있습니다.
프로토콜은 저는 이상하다고 생각하지만 TCP를 상요하고있습니다.
질문만 간단히 말씀 드리면 recv()와 같이 대기하는 형태를 쓰지 않고 클라이언트의 접속이 끊어졌는지를
확인하는 방법이 없을까요?
생각한 방법으로는 write()함수나 send() 함수로 패킷을 보냈을때 실패할경우 해당 클라이언트 접속을 종료하는 방법으로
구현을 했는데요.
문제는 중간에 서버에서 보내는 데이터를 클라이언트측에서 받지 못하거나 할때도 무조건 클라이언트 접속을 끊어버리는것이 문제입니다.
클라이언트 측에서 접속요청을 끊었는지를 효과적으로 확인할 수 있는 방법이 있을까요?
Forums:
댓글 달기