[英]how to pass socket control to child process?
我寫了一個小型的代理服務器,它偵聽端口25並執行一些操作。
如果是安全的SMTP,我將派一個進程,並讓子進程接管此會話。
思想過程是該子過程應該是迎合特定客戶請求的過程。 如果有另一個客戶端發送郵件(受保護的),那么我需要分叉另一個進程。
但是發生的事情是,一旦子進程處理了客戶請求,它就會繼續監聽,但不會迎合該客戶。 父進程已經在此套接字上偵聽,因此每次都會派生一個新進程。
我該如何處理這種情況? 如果已為客戶端(IP地址)派生了一個進程,則不應發生新的派生。 現有的子進程應處理這些請求。
該程序基於C並在linux上運行。
在客戶端進程中保留發件人的信息。 當您收到新的SMTP消息時,請檢查發件人是否與以前相同。 如果是這樣,請勿分叉到新客戶端。
如果這不能回答您的問題,請包括代碼的基本部分,以便我們可以查看邏輯故障所在的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.