re: 使用 fork 所要注意的 yang-chunlei 2008-12-24 10:26
@lymons
我測試過了,確實(shí)如你所說,當(dāng)初我沒有想到每個進(jìn)程都有自己的虛擬空間。但是在我所舉的建立連接的那個例子中,父進(jìn)程把連接斷開了之后,服務(wù)器也隨之?dāng)嚅_了這個連接,雖然子進(jìn)程中的數(shù)據(jù)沒有變,但是服務(wù)器的鏈接狀態(tài)改變了,所以子進(jìn)程再去進(jìn)行數(shù)據(jù)傳輸則會失敗的。還有個問題,如果父進(jìn)程沒有沒有結(jié)束,鏈接也沒有斷開,那么當(dāng)服務(wù)器發(fā)送數(shù)據(jù)過來的時候,該哪個進(jìn)程去接收呢,因?yàn)閮蓚€進(jìn)程內(nèi)存中的數(shù)據(jù)和鏈接狀態(tài)都是一樣的,這樣豈不是造成了一個端口被兩個進(jìn)程監(jiān)聽的問題。這一點(diǎn)我還沒有去測試,稍后有了答案再進(jìn)行回復(fù)。
我測試過了,確實(shí)如你所說,當(dāng)初我沒有想到每個進(jìn)程都有自己的虛擬空間。但是在我所舉的建立連接的那個例子中,父進(jìn)程把連接斷開了之后,服務(wù)器也隨之?dāng)嚅_了這個連接,雖然子進(jìn)程中的數(shù)據(jù)沒有變,但是服務(wù)器的鏈接狀態(tài)改變了,所以子進(jìn)程再去進(jìn)行數(shù)據(jù)傳輸則會失敗的。還有個問題,如果父進(jìn)程沒有沒有結(jié)束,鏈接也沒有斷開,那么當(dāng)服務(wù)器發(fā)送數(shù)據(jù)過來的時候,該哪個進(jìn)程去接收呢,因?yàn)閮蓚€進(jìn)程內(nèi)存中的數(shù)據(jù)和鏈接狀態(tài)都是一樣的,這樣豈不是造成了一個端口被兩個進(jìn)程監(jiān)聽的問題。這一點(diǎn)我還沒有去測試,稍后有了答案再進(jìn)行回復(fù)。


