1

ソケット 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); 

ただし、クライアントが端末のウィンドウを閉じると、サーバーはループします。

何か案が?とにかく応援ありがとう

4

1 に答える 1