select를 이용한 비동기 소켓 서버를 만들고 있습니다.
readfds의 경우엔 심플하게 패킷이 들어오면 fds에 변화가 생기지만
writefds의 경우엔 간단히 알아보니 '전송 가능한 시점에서 변화가 생긴다'라고 한 걸 봤습니다.
헌데 소켓의 경우엔 정상적인 연결 하에선 항상 전송 가능하지 않습니까?
실제로 콘솔 입출력에선 항상 fds의 변화가 생긴다고 했고...
그렇다면
-----------------------------
writefds에는 전송할 내용이 있는 소켓을 fd_set 시켜두면
그 소켓은 연결이 정상이라면 무조건 select에서 결과로 반환이 되니
그 결과를 검사해 전송 과정을 수행한다.
-----------------------------
라는 과정이 맞는건지요?
이론상 완벽하게 이해하는 게 아니라 코드와 결과를 통해 빠르게 이해하는 게 목적이다보니
중간중간 막히는 게 많네요...