2011-01-17 7 views
1

私がWindowsチャットアプリケーションを開発したいと思ったら、チャットサーバを開発してクライアントを開発する必要があるとします。チャットサーバーアプリケーションを開発した後、そのアプリケーションをマシンで実行し、チャットクライアントは別のPCを実行します。それらのPCが同じネットワークにない場合、チャットサーバは米国のマシンで実行され、チャットクライアントはドイツのマシンで実行され、別のチャットクライアントは英国のマシンで実行されると仮定します。この状況では、インターネットを使用して通信がどのように行われるのでしょうか。すべてのnachineがインターネットにアクセスして、1人のチャットクライアントがチャットサーバーにログインし、2人のチャットクライアントがどのようにして互いに通信するのかを知ることができます。私はちょうどチャットサーバーを経由して、あるクライアントから別のクライアントにデータがどのように転送されるのかを考えています。私のコンセプトを教えてください。もし誰かが私にグッドサーバベースのチャットアプリケーションとチャットサーバとチャットクライアントがある.........ありがとうございました。必要なときに、サーバーがクライアントを更新してWindowsベースのチャットアプリケーションに関するコンセプトが必要

  • WCF二重のWebサービスは、(もう少し -

    クライアントポーリングと
  • +0

    実際に特定の質問はありません...クライアント/サーバーのアーキテクチャは何ですか?あなたは一般的にインターネット上でコミュニケーションをとる方法を知りたいですか? –

    +0

    はい、私は2つの勝利アプリがインターネット上でお互いに通信する方法を知りたいと思います....詳しく説明してください。ありがとう – Thomas

    +0

    それは、そのような貧しい受け入れ評価で回答を得るのは難しいかもしれない – Spooks

    答えて

    2
    1. WCF Webサービスのサービス(非常に効率的で、実装するのは容易ではない、単純な-基本シナリオ)複雑な)

    2. TCP実装が難しいが、はるかに優れた制御が可能なソケットベースのソリューション。 Matthew McDonaldの本「Pro Silverlight 3」には非常に良い例があります。

    +0

    私はちょうど1つのチャットサーバーのような2つのアプリケーションが他のチャットクライアントがどこに英国のマシンで実行されるため、インターネット上でお互いに通信する勝利アプリでソケットを使用したいアメリカのマシンで実行されます。どのようにソケットアプリケーションは、可能な場合は詳細を説明するinternet.pleaseを介して他の人と対話することができます....または私は知識を持っていることができますどこからURLを与えることができます....ありがとう。 – Thomas

    +0

    基本的には、着信接続を「リッスン」するサーバーが必要です。着信接続が受け入れられると、サーバー側の接続クライアントを作成して、特定のリモートクライアントと直接通信することができます。私はそれが完全な作業サンプルを持っていると述べた本を探してお勧めします。 – Maciek

    3

    一般的には?私はこれをC#に関連しているか表示されていないが、クライアント・サーバ・アーキテクチャは、次のようになります。二つ以上のクライアントが互いに通信どこに記述しているようなもののために

    Client <-----> Server 
    

    、あなただけの話をしています複数のクライアントの追加に関する:

    Client A <---- 
           | 
           ----> Server 
           | 
    Client B <---- 
    

    クライアントAがクライアントBにメッセージを送信したい場合は、[クライアントAが、何らかの情報をサーバーにメッセージを送信し、それがクライアントBのためのサーバーを意図していますことを示す、その後が調べそのメッセージは、それがクライアントB向けであると判断し、そのメッセージをクライアントBへの接続を介して中継する。

    これは、クライアントサーバーアーキテクチャの基本的な定義です。 Skypeなどのクライアント/サーバーとピアツーピアを混在させた、より高度なアーキテクチャがあります。ハイブリッドシステムでは、クライアントからサーバーへの接続は、通常、制御メッセージ(認証など)のみを運び、別のクライアントと直接接触する方法に関する情報を要求します。このようなアプローチの利点は、AとBとの間の通信のうち、すべてのがサーバーを流れる必要がないことです。 AとBの両方がサーバーに接続しますが、サーバーに相互接続の方法を直接問い合わせてから、帯域幅を大量に消費する通信にその直接接続を使用します。

    これは本当に脇にあります。アプリケーションの開発の道を始める前に、特定の言語や環境に依存しないクライアント/サーバアーキテクチャを読んでください。

    +0

    あなたの返信に感謝.....私はちょうど2つの異なるマシンで実行されている2つのアプリケーションがインターネット上でお互いにやりとりすることができる結果としてC#でコードを書く方法を知りたい。私はこのことについて私を案内してくれてうれしく思っています....ありがとうございました。 – Thomas

    関連する問題