【发布时间】:2011-10-05 02:21:27
【问题描述】:
我编写了一个服务器程序,可以使用 fork() 处理多个客户端。我有一个信号处理程序,在需要的地方进行错误检查,并且一切正常。我设置了如果客户端输入“退出”,服务器应该停止接受连接,让打开的客户端完成通信,并在所有客户端关闭后关闭。为此,每当输入“退出”时,我都会将一个 int 标志设置为 0。由于每个子进程中的变量仅适用于该进程,并且不会影响其他子进程或父进程,因此我可以'不跟踪标志何时设置为 0。在我的信号处理程序中,我正在检查
if( count == 0 && flag == 0)
//close server and exit program
count 是打开的客户端的数量,在它们全部关闭后显然会为零(这已经过错误检查以确保它是正确的)。有谁知道我可以创建一个可以在一个客户端内设置的标志,并且对每个客户端都有相同的值?如果这有意义.. 顺便说一句,我正在用 C 编码。
【问题讨论】:
-
有很多方法可以做到这一点。这里要知道的一个有用的关键词是“进程间通信”en.wikipedia.org/wiki/Inter-process_communication