해당 에러는 소켓통신시에 발생한다.
연결이 끊어진 소켓에 send 를 하면 SIGPIPE signal이 발생하여 디버깅에 잡히지 않고 종료된다.
해당 신호는 UNIX 신호이기 떄문에 이거에 대한 처리를 해주지 않으면 바로 프로그램이 죽는다.
나같은 경우는 IOS환경이며 게임앱 ->백그라운드 ->와이파이off ->게임앱 으로 돌아왔을때 발생하였다.
따라서 해결방법은
signal(SIGPIPE, SIG_IGN);
위 코드를
1.백그라운드 진입시 호출되는 콜백함수
2.다시 인게임으로 들어오는 콜백함수
각 함수 시작부에 넣어주니 해결되었다.
위 함수는 SIGPIPE 시그널을 무시하는것으로 아래링크에 친절히 써져있다. https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/CommonPitfalls/CommonPitfalls.html
Avoiding Common Networking Mistakes
Avoiding Common Networking Mistakes When writing networking-based software, developers often make a few common design and usage mistakes that can cause serious performance problems, crashes, and other misbehavior. This chapter highlights a few of those mis
developer.apple.com
'MFC > error History' 카테고리의 다른 글
Building for IOS Simulator,but the linked framework"*.frameworks"...에러 해결 (0) | 2021.04.21 |
---|---|
LINK : fatal error LNK1000: Internal error during LinkerMain 에러 (0) | 2019.04.13 |