[問題] socket 的fork問題

看板C_and_CPP (C/C++)作者 (飛飛戰士)時間15年前 (2011/04/19 05:50), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
開發平台(Platform): GCC 想請問一下 我正在寫一個socket以fork來模擬多個client端 連接一個server. 我以fork來使多個client連接後會丟資料給server 然後server端將這些資料統一存在一個array裡 為了怕資料不小心重複儲存在一個同個位子 所以我將每個資料都有指定他儲存的位子 一併丟給server端 像是 client1 的data要存在 array[0], 而client2的data存在array[1] 這類的. 開始執行後fork連接跟丟資料都如預期般沒有出問題 問題在所有client都結束後 我一次把整個array印出來 他卻只能跑出其中一個client的資料 像是client1 丟完資料後是跑出 client1自己丟上去的資料 接下來client2結束後server端卻只印出client2的資料 client1 的位子還是一片空白. 我爬了一下文 fork的子進程要跟父進程的資料流通是要用pipe 但是這樣就變成要在client端溝通 而不是在server端 想請問一下有什麼解決辦法 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 207.151.245.159

04/19 11:54, , 1F
code?
04/19 11:54, 1F

04/19 12:07, , 2F
Server 是用 single process方式嗎?
04/19 12:07, 2F

04/20 12:22, , 3F
04/20 12:22, 3F

04/20 12:29, , 4F
後來我直接把他寫到檔案中 再讀檔讀回陣列
04/20 12:29, 4F
文章代碼(AID): #1DhB8w-u (C_and_CPP)
文章代碼(AID): #1DhB8w-u (C_and_CPP)