2015-11-20 51 views
0

我有一個基於選擇的服務器系統,我可以管理多個客戶端。服務器自動讀取並響應客戶端,這很好。但是有一個小問題。例如,用戶#1更改目錄(使用chdir編碼),所有其他用戶都會受到此更改的影響。我真的希望能夠避免發生。每個客戶端獨立的開始目錄

+0

我把代碼放回去,因爲它幫助我理解你在問什麼。 – ams

+0

@ams我看到了。但我相信案件已經結案。正如我下面評論的,我使用Struct。不管怎樣,謝謝。 – Perelan

回答

0

有兩種方法來解決這個問題:

  1. 叉掉一個單獨的進程來處理每個連接。這個過程可以有自己的狀態,包括當前的工作目錄。缺點是你需要重構你的代碼很多,如果你有很多併發連接,那麼它可能是一個性能問題。這在* nix的Windows上很難,但並非不可能。

  2. 保留當前目錄爲每個連接設置你的程序,並(重新)執行用戶命令之前設置的目錄。

+0

謝謝!我將嘗試使用一個ID和一個工作空間構建一個結構,在這裏所有的數據將被管理和存儲......如果這是可能的。 – Perelan