2011-07-25 11 views
2

通常、クライアントとサーバーの通信に異なるポートが必要なのはいつですか? (この質問はC#と一般的なソケットプログラミングです)。クライアント/サーバアプリケーションに異なるポートを使用する場合

シンプルなC#クライアント/サーバーアプリケーションを実装して使用しています。基本的には: -

  • クライアント話
  • サーバーの応答
  • クライアントの話をするために、クライアントのために、サーバーが待機

    • サーバーは
    • サーバースポーンクライアントスレッドを接続/受け入れた上で、クライアント
    • をリッスンお問い合わせ
    • サーバー対応など

    クライアントが話しを止めると、クライアント側が切断しない限り、サーバーはブロックされたスレッドで永久にNetworkStream.Read()モードになります。

    私は今、両側が何らかのイベントが両側で起きるまで静かにして、クライアントまたはサーバだけがデータを送信するという状況を考えています。したがって、両方とも同時にNetworkStream.Readモードにする必要があり、同時に(イベントが両側で同時に発生した場合)同時にお互いに送信することができます。

    この場合、異なるポートが必要ですか、クライアントとサーバーの両方がNetworkStream.BeginReadモードになっていても、NetworkStreamが書き込みモードと送信モードの両方で同時に問題を起こす危険はありませんか?

    ありがとうございました。

  • 答えて

    1

    優秀な質問です。私はそのアーキテクチャを持つ複数のアプリを書いています。リクエストから流れ要求はクライアントからサーバへ

  • 接続を流し

    1. 接続:あなたは双方向通信を持っている必要があるとき、あなたはクライアントとサーバの間(2つの異なるポートではもちろん、)2つの接続を必要としますサーバーからクライアントへ

    このようにして、両側にはNetworkStreamが読み込まれます。そして、2つのフローの間の独立性のレベルに気づき、双方向リクエスト処理コードをより詳細に制御できます。

  • 関連する問題