我有兩個應用程序,一個是客戶端,另一個是服務器。服務器啓動客戶端作爲子線程。客戶端然後通過其標準輸出命令。服務器等待相應的命令和響應。客戶端/服務器應用程序通過命令行與線程進行通信C++
基本上客戶端服務器通過標準輸出。
例如:
client >> Move north
Server >> Your new location is {2,3}
client >> Move north
Server >> Your new location is {2,2}
client >> Shoot east
Server >> Projectile 66638 heading east {3,2}
的問題是,我不知道如何將兩個應用程序連接在一起,這樣服務器和閱讀並響應客戶端應用程序。
我想使用命令行作爲通信層的原因是我希望保持客戶端的創建儘可能簡單。
此外,每次可能有多個客戶端,客戶端應該能夠相互獨立地與服務器進行通信。 (他們不應該能夠看到對方的通信)
目前我通過CreateProccess()函數啓動應用程序。該功能可以輕鬆設置應用程序的初始命令行參數。之後就不是溝通。
我的問題是:
- 那如何啓動一個客戶端應用程序的線程服務器應用程序,讀/寫客戶端的標準輸出?
你需要做的第一件事就是查找[如何在C++中創建管道](http://stackoverflow.com/questions/5840109/how-to-make-a-pipe-in -c) – Kiril
嘗試重定向stdout是使用命名管道的一種漫長而痛苦的方式。如果您已經使用CreateProcess(),請使用此SDK文章獲取指導:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx –
您可以'當使用線程時,確實使用'stdout' /'stdin'作爲通信方式。如果你把客戶端放在一個單獨的_process_中,它可以工作,但我不會稱之爲好的設計。相反,您應該查看其他溝通方式,例如管道或套接字。當你的客戶端不屬於你的服務器時,這將有助於你的未來。 –