서버측이 아니라 클라이언트 측에서 개설할 소켓 갯수를 받아서, 다중으로 소켓을 개설 후 select()함수를 이용하여 소켓 상태를 체크하는 프로그램을 제작중입니다. 그런데 특정 소켓번호를 지정해서 종료시키고 다시 FDSET하는 과정에 있어서 어려움이 있어 질문을 드렸습니다.
일단 제 FDSET하는 과정은 for문으로 모든 소켓 디스크립터번호를 때려박는 형식인데, 닫힌 소켓 번호를 어떻게 구분해서 때려박을지 막막하네요. 종료한 소켓번호를 기억하자고 배열 하나 더 만들기엔 뭔가 쓸데없이 메모리를 낭비하는 느낌이 들구요.
그래서 소켓을 닫고 해당 디스크립터 배열 내용을 바꾸고자 하는데, FDSET을 할 때 아무런 일도 하지않는 값이 있을지 한번 여쭤봅니다. (0,1,2 같은 걸 써도 될련지... 아님 -1? 다 안되면 어떤식으로 처리해야할까요 ㅠㅠ)