FD_ISSET

로이터와 커넥션을 맺은 상태에서 폴링을 통해 live한지 알아보는데, fd가 0보다 큰 값이 리턴되었다.

확인해보니 폴링시, select를 통해 fd를 확인 후 FD_ISSET()을 통해 리턴값이 들어오는데..
–>
FD_ISSET() macro는 이름 그대로 특정 file descriptor가 fd_set에 있는지를 확인한다.
return : true(1) or false(0)

클라이언트와 연결이 끊어졌을 경우, FD_ISSET()의 return = 1
(어찌되었건 그 소켓에 이벤트가 발생)

서버는 그 소켓으로부터 recv()하려고 한다.
그리고 recv() 함수의 return 값으로부터 상태를 확인할 수 있다.

클라이언트로부터 데이터가 왔을 경우에는 데이터의 byte 수가 return될 것이고
연결이 끊어졌을 때는 0이 return될 것이다.

“FD_ISSET” 에 대한 1 댓글

답글 남기기