我正在unix下用c构建聊天 . 我有一个服务器端和一个客户端 . 除非客户端关闭shell窗口,否则一切都很好 . 在这种情况下,客户端没有告诉服务器他要去,服务器认为他仍然登录 .
我想在客户端按下X按钮关闭终端时处理信号 . 我的过程得到了什么信号?我试图处理SIGHUP,SIGQUIT和SIGTERM,但它们似乎不起作用 .
当客户端按X关闭终端并在服务器应用程序中捕获相同信号时,您可以发送用户定义信号SIGUSR1或SIGUSR2之一 . 为此,您需要从需要维护的开放终端列表中获取有关终端的信息,服务器从该终端接收信号终端 .
有关这些信号的更多描述可以在信号的手册页中找到或here
Signal Value Action Comment --------------------------------------------------- SIGUSR1 30,10,16 Term User-defined signal 1 SIGUSR2 31,12,17 Term User-defined signal 2 SIGTSTP 18,20,24 Stop Stop typed at tty
1 回答
当客户端按X关闭终端并在服务器应用程序中捕获相同信号时,您可以发送用户定义信号SIGUSR1或SIGUSR2之一 . 为此,您需要从需要维护的开放终端列表中获取有关终端的信息,服务器从该终端接收信号终端 .
有关这些信号的更多描述可以在信号的手册页中找到或here