죄송합니다. 제 질문은 간단합니다.C 소켓에서 "select"
내 서버 프로그램에서 기존 연결의 데이터뿐 아니라 새로운 연결을 찾기 위해 select()를 사용하고 있습니다. 그러나 하나의 연결/소켓에서 데이터를 가져올 때 내 프로그램은 데이터를 읽고이를 배열에 저장합니다. 여기서 서버는 클라이언트에 회신하지 않습니다 (클라이언트는 recv() 모드에 있음). 이제 서버가 select() 호출로 돌아 가면 거기에 붙어 있습니다. 이유를 모르겠다. 내 의도는, [데이터가 없다면] 서버가 선택해야한다는 것입니다. 나는 select()에서도 timeout을 유지했다.
이 점에 대한 제안은 큰 도움이 될 것입니다.
당신의 select loop = – nos
에서 매번'fd_set'을 다시 초기화 하시겠습니까? 아닙니다. 필요한가요? –
예. 'select'가 반환 된 후에,'fd_set'의 유일한 멤버는 준비된 멤버가됩니다. 그것은'select'가 당신에게 어떤 준비가되었는지 알려주는 것입니다. –