select 을 3번의 recv() 함수에 대해 모두 구현해주어야 합니까?
글쓴이: black0328 / 작성시간: 월, 2003/11/17 - 2:00오후
select 로 타임아웃을 걸었습니다. recv() 코드 부분이 제 프로그램에서 3군데가 있는데 select 문도 3번을 써주어야하는건가요?
select 함수가 리턴 된 후 timeval structure 가 남은 시간으로 업데이트 되지 않는 것으로 압니다.그래서 전 3번을 써줌으로서 계속 timeval 함수를 업데이트 해준것인데요...이것이 맞는 것인지 알려주세요
while(1) { tv.tc_sec=10; tv/tv_msec =0; FD_CLR(&ead) FD_SET(maxfd,&ead) select(maxfd,read,0,0,tv); ~생략 if(recv()) ~생략 }
이 코드에서 recv()를 3번 씁니다. 그래서 전 이 구문을 3번 반복했습니다.
한가지 더 궁금한점은 tv를 게속 리셋해주어야 한다는 것인데..왜 그런지요...알려주세요
Forums:
[code:1] while(1) {
위의 소스로 timer setting 부분을 while문 밖으로 빼서 테스트 해보세요..
그럼 왜그런지 쉽게 아실수 있을 겁니다. -_-
즉... select()의 2, 3, 4, 5번 인자가value-re
즉... select()의 2, 3, 4, 5번 인자가
value-result argument 이기 때문에...
=3=33
댓글 달기