2016-12-19 3 views
-3

私はjavaでクライアント/サーバーアプリケーションをコーディングしています。私は、サーバがクライアントと再び通信しなければならない場合、またはその逆の場合にソケットを閉じないほうが良いという考えを思いついた。それは良い練習ですか?私は常に情報を要求するサーバーに接続されたクライアントと協力して、私の他のアプリでは、今私はいくつかの変数がサーバーに変更された場合、サーバはいくつかの特定のクライアントにその情報を送信しなければならないというものが必要。私はこれをより良く説明する方法を知らない。要約すると、クライアントからの要求なしにサーバーからクライアントに情報を送信するにはどうすればよいですか?もう一度やり取りするなら、ソケットを閉じるのが良い方法でしょうか?

+0

この質問は非常に曖昧です – ControlAltDel

+0

@ControlAltDelが編集しました – sh1ftz

答えて

0

サーバからクライアントに接続しようとすると、複数の主要な問題がある

  1. 非静的IP
  2. ファイアウォール&のWiFiルータの設定クライアントが

をリストアップする必要があります

  • これらのそれぞれについてもっと言いたいことがありますが、サーバーがクライアントからの接続を維持している場合は、後で

  • 1

    あなたは常にインクルードはもはや必要ないとすぐに閉じていることを確認リソースをしなければならない接触を確立。

    サーバーからの要求を待つ必要がある場合、あなたは明らかにあなたが実際に接続をシャットダウンするまで、開いたソケットを維持する必要があります。

    実は、これはアプリケーションプロトコルが複数の要求が同じ接続を介して送信することを可能にしたときに、サーバーがどのように動作するかです。サーバーが開始した要求を、クライアント内の「サーバー」機能のように受け入れることを考えてみてください。ただし、接続を受け入れていないという事実のためです。もちろん

    、私は、カスタムアプリケーションレベルのプロトコルを持って理解しています。 HTTPなどの他のアプリケーションレベルのプロトコルで作業する場合は、状況が異なる場合があります。このような場合は、より良いお手伝いをするためにプロトコルを明記してください。

    関連する問題