서버/클라이언트 설정에서 나는 다른 소켓의 소수 (현재 4)에 클라이언트와 연결되어있는 서버를 가지고있다. 지금은 계산 된 set_size를 사용하여 select를 사용하지만, FD_SETSIZE를 사용하는 것이 가치가 있기 전에 상한값은 무엇입니까?FD_SETSIZE 대 계산 된 값
다음은 요점을 설명하기위한 몇 가지 코드 예제입니다.
set_size = MAX(socket1, socket2);
set_size = MAX(set_size, socket 3);
set_size = MAX(set_size, socket4);
set_size += 1;
그리고 사용은 : :
while ((cnt = select(set_size, &set, NULL, NULL, &t)) != -1 || errno == EINTR) {
if (cnt > 0)
// Do different stuff depending what socket is active
else
// Keep everything alive and add the sockets to the set again
}
최근에 나는 두 개의 새로운 소켓을 추가했다 나는 수도
여기FD_ZERO(&set);
FD_SET(socket1, &set);
FD_SET(socket2, &set);
FD_SET(socket3, &set);
FD_SET(socket4, &set);
가 set_size 계산하는 방법이다 : 첫 번째 세트를 구축 앞으로 더 추가해야합니다. 계산 된 set_size와 반대로 FD_SETSIZE를 사용 하시겠습니까?
감사합니다. 정말 좋은 설명입니다. 지금은 성능에 대해 너무 걱정하지 않지만 소프트웨어 사용이 늘어남에 따라 성능이 향상 될 수 있습니다. 이를 염두에두고 어디서부터 시작해야 할지를 아는 것이 좋습니다 :) –