我是新來的C++,我開始用boost來編寫我的服務器。我在網絡和官方文檔中都遵循了很多示例。但是,我沒有發現任何東西(也許我沒有問這個好問題)關於這個 - >與特定客戶進行交流。我的意思是覺得─>C++與特定客戶端進行通信Boost asio
老問題:
服務器啓動和等待連接 - >客戶端(1)通過 TCP的連接>服務器接受客戶端,並開始async_read
假設3個客戶端也連接 - >
我怎麼會告訴我的服務器也寫太客戶端(2)或(3),但不是 都?
我表達我自己不好
新問題:
我的服務器做工精細,當客戶端將數據發送到服務器(自定義客戶端在虛幻引擎4),他可以讀它,然後寫回到我的客戶沒有問題。我尋找一種方式與我想要的客戶交談,而不需要他發送數據。示例:
客戶端1寫入服務器 - >數據發送到服務器啓動下一個操作 - >寫入特定的客戶端。
更具體的例子:
客戶端1要發送請求的客戶端10,所以客戶端1寫入到服務器的行動«動作,ID客戶端»(請求,10),那麼服務器知道他需要與客戶10交談併發送請求。
我的問題不在客戶端,而是在服務器端。
我相信這很容易,我只是不明白一些基本的東西,如果有人可以提供給我一個方向,一個例子或只是一個解釋,它將不勝感激。感謝您的未來答案。
編輯:
如果有人有很難像我這樣的(我知道這是容易的,但我們永遠不知道:對,也許它可以幫助別人),這裏的答案。
我包括此,我用它來連接,編寫,發送文件等
std::map<int, tcp::socket> playerRemote;
裏面我把它 - >
使用插座 - >
boost::asio::async_read(playerRemote.at(id_to_use)
問題解決!感謝幫助!
老兄...這個例子無處不在!看看這裏:http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/examples/cpp11_examples.html –
問題是什麼?如果您有三個接受,存儲並等待通過'async_read'接收數據的套接字,則可以在連接到特定客戶端的套接字上調用'write'或'async_write'。 –
如果你想發送數據到特定的客戶端,你可以將它們存儲在,例如,一個'std :: map'以及IPv4/6地址或名稱,併發送數據...就那麼簡單。 – Blacktempel