ソケット TCP 経由で接続されたクライアントがターミナル (GUI の [X]) を閉じても、サーバーを閉じたりクラッシュさせたりする必要がないように、SIGHUP と SIGPIPE シグナルを処理する必要があります。
このようなsigupハンドラーをクライアントに設定しました
void sighup()
{
signal(SIGHUP, SIG_IGN);
system("echo SIGHUP received>>log.txt");
close(socket);
exit(0);
}
サーバーで、このような SIGPIPE ハンドラーを設定しました
signal(SIGPIPE,SIG_IGN);
ただし、クライアントが端末のウィンドウを閉じると、サーバーはループします。
何か案が?とにかく応援ありがとう