select와 signal을 이용해서 서버를 작성하였습니다.
select만 있을때는 잘되는데, signal을 넣으니까 가끔 들어온 패킷을 무시하고, 링크드 리스트로 저장한 데이터가 꼬입니다.
flags = fcntl(listen_sock, F_GETFD, 0);
fcntl(listen_sock, F_SETFD, flags |
O_NONBLOCK);
[/code]
위와같이 하여서 Recv나 accept에서 block가 일어나지 않아야하는데, 가끔 block이 일어나는것 같기도 합니다
그런 상태에서 시그널에 의해 block이 풀리는것 같습니다.
쉽게 쓸수있는 윈도우의 SetTimer같은 함수가 없을까요?