私はC++が新しく、私はブーストで自分のサーバーをコーディングし始めました。私はウェブ上と公式の文書の多くの例に従っています。しかし、私は何かを見つけました(多分私は良い質問をしません)これについて - 特定のクライアントとのコミュニケーション。これにより、私はthat-を意味>C++が特定のクライアントと通信するブーストasio
古い質問:
サーバーの起動とconnection-待つ>クライアントは、(1)サーバがクライアントを受け入れ、async_read
を開始> TCP-を介して接続します3つのクライアントも接続すると思います - >
私のサーバーにもクライアント(2)または(3)が書き込まれますが、 は書き込まれません。
私はひどく
自分を表現する新しい問題:クライアントがサーバにデータを送信するとき(アンリアルエンジンでカスタムクライアントを4)彼は書き、それを読むことができ、
私のサーバーの作業罰金私のクライアントに何の問題もありません。私は彼にデータを送る必要なく、私が望むクライアントに話す方法を探します。例:
クライアント1サーバへの書き込み - >データはサーバに送信され、次のアクションを開始します>特定のクライアントに書き込みます。
より具体的な例:1は、クライアント10に要求を送信したい
クライアント、サーバーアクション«アクション、IDクライアント»(リクエスト、10)、サーバへのクライアント1の書き込みは、彼がする必要があることを知っているので、クライアント10と話し、要求を送信する。
私の問題はクライアント側ではなくサーバー側で発生します。
誰かが私に指示、例、または単に説明を与えることができれば、それはかなり簡単で基本的なものは分かりません。将来の答えをありがとう。
EDIT:
誰かが私のように苦労している場合(私はそれが簡単だ知っているが、我々が知っていることはありません:pは、多分それが誰かを助けることができる)、ここでの答え。私はIT-を設定するなど、私は、接続の書き込み、送信するために使用するファイル、
std::map<int, tcp::socket> playerRemote;
の内側にこれを含める
>
socket->
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 –
問題は何ですか? 3つのソケットが受け入れられ、格納されていて、 'async_read'を介してデータを受け取るのを待っているなら、特定のクライアントに接続されたソケットで' write'または 'async_write'を呼び出すことができます。 –
特定のクライアントにデータを送信する場合は、IPv4/6アドレスや名前[...]とともに 'std :: map'に格納してデータを送信することができます。そのような単純な。 – Blacktempel