select질문
글쓴이: vilinux / 작성시간: 월, 2004/06/28 - 6:37오후
int max_fd; struct timeval timeout; // select time 관련 FD_ZERO(&readfds); // 초기화.. 지정된 descriptor 세트에서 제거 FD_SET(Com1, &readfds); //dev_keypad 2비트를 켠다 읽기 변화 감지 fd가 set안에 있는지 확인한다. FD_SET(Com2, &readfds); FD_SET(Com3, &readfds); FD_SET(Com4, &readfds); max_fd = Com1 + 1; timeout.tv_sec = 0; timeout.tv_usec = 1000*500; // 0.5 초로 셋팅한다 res = select(max_fd, &readfds, NULL, NULL, &timeout); if(res < 0){ perror("com1 select failed"); } else if(res == 0){ printf("com1 select tiomeout res[%d]\n", res); } else{ }
질문입니다
max_fd = Com1 + 1; 해주는데
com2,com3,com4 를 감지 할려면 어떻게 해야하나요?
여기도 +1 해주면 되나요 셀렉문을 다 이해하지못해서뤼~~~ㅡㅡ;
설명좀 해주세요~아님 fd 같이 쓴예제라동~~
Forums:
Re: select질문
아마도 com1이 com[1234]중에 가장 큰가 보네요.
0부터 (select의 첫번째 인자-1)의 fd를 검사합니다.
저기 맨아래 else에서 FD_ISSET으로 검사해보세요.
예제는 beej의 네트웍강좌에 있었던거 같습니다.
google에서 beej만 쳐보세요. *_*
select
앞에 분 말씀대로, FD_ISSET 매크로를 이용하시면 됩니다.
int max_fd;
struct timeval timeout; // select time 관련
FD_ZERO(&readfds); // 초기화.. 지정된 descriptor 세트에서 제거
FD_SET(Com1, &readfds); //dev_keypad 2비트를 켠다 읽기 변화 감지 fd가 set안에 있는지 확인한다.
FD_SET(Com2, &readfds);
FD_SET(Com3, &readfds);
FD_SET(Com4, &readfds);
max_fd = max(Com1, Com2, Com3, Com4) + 1;
timeout.tv_sec = 0;
timeout.tv_usec = 1000*500; // 0.5 초로 셋팅한다
res = select(max_fd, &readfds, NULL, NULL, &timeout);
if (FD_ISSET(Com1, &readfds)) {
/* 처리 */
}
else if (FD_ISSET(Com2, $readfds)) {
}
이런 식으로 해주시면 됩니다.
select의 max_fd 값에 1을 더해 주는 것은, select가 0~(maxfd - 1)의 범위에서
검사하기 때문입니다.
그럼...
감사합니당......^^
근데
max(com1, com2.........) +1;
이런 함수가 있는건가요 ?? 어디 보니까 MAX( )+1
대문자로 이렇게 쓴것도 있던데......
select
이상 윤성우님의 TCP/IP 소켓 프로그래밍 내용이었습니다.
Re: select
지금 책이 없거든요~~~ ㅡㅡ;
낼사러 가야겠따 어떤책 사야죠??
아님 간단하게 설명이라도 프로그램하고 있는데 진전이 없넹..!
리차드 스티븐슨의 유닉스 네트워크 프로그래밍 이란 책입니다.1판이나
리차드 스티븐슨의 유닉스 네트워크 프로그래밍 이란 책입니다.
1판이나 2판이나 상관없습니다.
select설명은 매한가지.
메뉴얼 페이지 man select하셔도 충분하실듯.
어차피 책을 사실려면....
그 누가 추천을 해도 Stevens의 UNP를 추천할 것입니다.
어차피 구입하실려면 1,2 판보다는 이번에 나온 3판을 사시는게 어떨까
생각됩니다.
추가된 내용이 많이 있으니 3판을 보시는편이 좋을듯 싶습니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
댓글 달기