【发布时间】:2013-05-09 13:52:56
【问题描述】:
我编写了一个小型代理服务器,它监听 25 端口并执行一些操作。
在安全 SMTP 的情况下,我派生一个进程并让子进程接管此会话。
思考的过程是这个子进程应该是满足特定客户请求的那个。如果有另一个客户端发送邮件(安全),那么我需要分叉另一个进程。
但是发生的事情是,一旦子进程处理了客户端的请求,它就会继续监听,但不会迎合这个客户端。父进程已经在监听这个socket,所以每次都fork一个新进程。
我该如何处理这种情况?如果已经为客户端(IP 地址)分叉了进程,则不应发生新的分叉。现有的子进程应该处理这些请求。
该程序基于 C 语言并在 linux 上运行。
【问题讨论】:
标签: c linux client-server fork inter-process-communicat