select()를 사용하여 이미 완료 한 멀티 스레딩과 달리 여러 클라이언트를 처리하는 서버를 만들려고합니다. 그러나 select()는 아무 것도하지 않는 것 같습니다. 예를 들어 필요한 모든 시스템 호출이 있습니다. socket()은 listener라는 int로 반환됩니다. bind(), then listen(), 모든 문제를 반환하지 않는 적절한 오류 검사. 그것은 또한 잘 컴파일됩니다.C (Windows 7)에서 Select() 문제
FD_ZERO(&fileDescriptors);
FD_ZERO(&tempSet);
.....
FD_SET(listener, &fileDescriptors);
fdmax = listener;
.....
while(1){
if(select(fdmax+1, &tempSet, NULL, NULL, &timeout) == -1){
//error occured
}
.....
}
클라이언트는 클라이언트 측에서 0을 돌려줍니다) (그러나 WSAGetLastError를 연결을 설정하지 못할. 그리고 서버는 절대로 timeout 때문에 0을 반환하는 것과는 별개로 select()를 전달하지 않습니다. 내 코드에서 문제를보기 위해 정말로 고심하고 있습니다.
죄송합니다. tempSet을 fileDescriptors와 같게 만들었습니다. – Rick