[완료] 소켓 프로그래밍시 select로 기다릴려고 하는데요.
글쓴이: mg2000 / 작성시간: 월, 2010/06/28 - 5:43오후
안녕하세요. 제가 네트워크 프로그래밍 하느라 이것저것 해보는 중인데...
fd_set fdRead = {0}; // s는 소켓 FD_SET(s, &fdRead); int ret = select(s, &fdRead, NULL, NULL, NULL); char buffer[1024]; int nSize = 0 if (ret > 0) nSize = recv(buffer, buffer, 0);
이런식으로 해서, 뭔가 입력이 들어오면 recv함수를 통해서 데이터를 받으려고 하는데요.
문제는 select에 걸려서 입력 데이터가 들어와도 select에 걸려서 다음으로 안넘어가네요.
그냥 Non-blocking Socket으로 만들어서 recv를 계속 loop를 돌리니, CPU를 너무 많이 먹어서,
select로 대체를 해볼까 하는데 안되네요.
위처럼만 작성하면 되는 것이 아닌건지...
Forums:
음..
select() 의 첫번째 argument 는, fd_set 에 있는 fd 의 최대값 + 1 입니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다.
기초적인 내용을 모르고 삽질을...
댓글 달기