| [ CnUnix ] in KIDS 글 쓴 이(By): dalgong (달공아저씨) 날 짜 (Date): 2002년 7월 26일 금요일 오전 10시 28분 22초 제 목(Title): Re: [질문]Linux에서 send(), SIGPIPE, SIG SIGSTP가 온다는 건 이해가 안가네요. 다른 이유로 이게 날라오는 건 아닌지 살펴보시는건.. 별로 관계 없는 얘기지만.. select()로 connection close를 검사하신다고 하셨는데, 그게 제대로 동작을 안하지 않나요? 일반적으로 connection close를 검사할려면, read()가 0을 반환하거나, write()가 -1 & EPIPE (물론 SIGPIPE를 ignore한 상태에서)등의 상태인 경우입니다. write에서 connection close인 걸 알아도, 그전에 write한게 제대로 전달되었는지 여부는 알 수 없기 때문에 application에서 처리를 해줘야 합니다. 이런 문제로 해서 socket은 프로그램의 구성을 할때 중간중간에 connection close하는 부분에 대한 처리가 어쩔 수 없이 들어가게 되는 지저분한 문제가 있죠. 이걸 깔삼하게 해결하는 방법있나요? |