send()시 죽어버리는 문제 해결하기

connect()되어서 열심히 잘 통신하다가 외부 요인에 의해 커넥션이 끊어졌을 때 send()를 하면 갑자기 죽어버릴때가 있다.

이건 send() 할때 sig_pipe signal이 발생을 하는데 이걸 catch 하지 못하여 종료가 된다고 한다.
따라서 이와 같은 경우에는 다음과 같이 MSG_NOSIGNAL를 이용하거나 아니면 sig_pipe signal 핸들러를 등록하여 처리해주도록 한다.

send(fdSocket, pBuffer, nBufferSize, MSG_NOSIGNAL);


역시 네트워크는 복잡하다. 이것만으로 다 해결이 안될 것 같은데 나머지는 발견하는대로 포스팅하자.
자 그럼 남은건 굿럭.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2008/09/16 18:09 2008/09/16 18:09
, ,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/177


블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

  1. 듀얼클러치의 생각 rsvin28's me2DAY 2009

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
158013
Today:
83
Yesterday:
228