2011-10-28 20 views
0

純粋なソケットを使用して私自身のVOIPサーバーとクライアントを既に作成しました。すべてのクライアントが音声データをサーバに送信することができ、サーバは音声データを受信して​​リアルタイムで再生します。クライアントが特定のクライアントと通信したい場合はどうなりますか?それ、どうやったら出来るの?あるクライアントから別のクライアントにデータを送信するにはどうすればよいですか?

編集:たとえば、クライアントAはC(サーバー)に接続し、クライアントBはCに接続します。AはデータをCに送信するかどうかにかかわらずBに送信できますか?

必要に応じて、私のコードを表示することができます。あるいは、私が具体的ではない場合、私に教えてください。私は私の質問についてもっと詳しく説明します。

+0

利用可能であるあなたは求めています全体のデザイン。私はあなたの質問の範囲を絞り込むべきだと思います。 –

答えて

1
  • AC
  • Bに接続C
  • Aに接続B場合Cを尋ねる彼がそうであればB
    • Aを通信することができる利用可能である
    • Cチェックがデータを送信します〜0 B場合ではない
      • A試行後にCを尋ねるする場合B
    • にそれがB
    • C転送データのためだを言ってが
+0

私はこれが完全に動作すると思います。私はこのメソッドを実行する際に問題がある場合、いくつかのソースコードで別の質問を投稿します。 –

+0

@LB:@DanielLopezがサーバ 'C'とサーバ' A'、 'B'クライアントを呼び出すので、すべてのデータ交換**はサーバーを通過する必要があります**。しかし、「A」が直接「B」と話すことができるのであれば、おそらくそれを行う方が良いでしょう。ここで最善の選択について助言することはできません、それはプロジェクトの詳細が必要になります。 –

+0

@Otielここでは、「どのようにしてCにデータを送信してもしなくても、Bにデータを送信できますか? –

1

サーバーはオーケストレーターとして機能します。 AはサーバーからClient B's IP & listening portを要求し、そのアドレスに直接接続することができます。

+0

TcpListenerとTcpClientを使用していますが、どのようにしてTcpClientオブジェクトからIPアドレスを要求できますか? –

+0

@DanielLopez:新しい質問をしてください。 – Otiel

+0

より高いレベルのプロトコルを実装する必要があります。メッセージ(例えば、シリアライズされたクラス) 'クライアントの情報を尋ねる、'情報を返す '、 '音声データを送信する'など。RPCに関するいくつかのドキュメントを読むべきだと思います。 http://en.wikipedia.org/wiki/Remote_procedure_call –

関連する問題