서버가 죽는 현상이 발생하였고
SIGPIPE, 혹은 Broken pipie. 메세지가 나온다면
이미 닫힌 소켓에 데이터를 보내기를 했을것이다.
SIGPIPE를 검색해 보면 알겠지만 파이프가 끊겼을 경우 발생하는 signal이다.
아래 참고 사이트를 보면 알것이다.
만약에 SIGPIPE를 받아도 죽지않고 그대로 진행하게 할려면 해당 시그널을 무시해보리는 방법이 있다.
무시하는 방법은
고전적인 signal 함수 사용
sigaction을 사용
ACE 프레임 워크를 사용한다면
를 하면된다.
만약 send를 한후에 SIGPIPE에러를 인지 확인할려면
errno 값이 EPIPE 값인지 확인하면된다
참고 사이트
http://kelp.or.kr/korweblog/stories.php?story=02/03/13/6152214
http://blog.naver.com/PostView.nhn?blogId=hyungii&logNo=130081645365
SIGPIPE, 혹은 Broken pipie. 메세지가 나온다면
이미 닫힌 소켓에 데이터를 보내기를 했을것이다.
SIGPIPE를 검색해 보면 알겠지만 파이프가 끊겼을 경우 발생하는 signal이다.
아래 참고 사이트를 보면 알것이다.
만약에 SIGPIPE를 받아도 죽지않고 그대로 진행하게 할려면 해당 시그널을 무시해보리는 방법이 있다.
무시하는 방법은
고전적인 signal 함수 사용
signal(SIGPIPE, SIG_IGN); // sigpipe 무시.
sigaction을 사용
struct sigaction act; act.sa_handler = SIG_IGN; sigemptyset( &act.sa_mask ); act.sa_flags = 0; sigaction( SIGPIPE, &act, NULL );
ACE 프레임 워크를 사용한다면
ACE_Sig_Action sig_act (SIG_IGN); sig_act.register_action (SIGPIPE);
를 하면된다.
만약 send를 한후에 SIGPIPE에러를 인지 확인할려면
errno 값이 EPIPE 값인지 확인하면된다
참고 사이트
http://kelp.or.kr/korweblog/stories.php?story=02/03/13/6152214
http://blog.naver.com/PostView.nhn?blogId=hyungii&logNo=130081645365