2012-03-30 9 views
1

私は、クライアントアプリケーションがログインするためにサーバで認証する必要があるアプリケーションをコーディングしています.30分おきにパケットを送信して情報を受信し、さらに30分間スリープします。ソケットは常に開いているか、必要なときに開いていますか?

パケットを送受信した後に毎回ソケットを開始して閉じるのが適切な方法でしょうか。または、私はそれらを開いたままにして、いつでも接続しなければならないのですか?

100人以上のクライアントが同時にサーバーに接続しています。

ところで送信されたデータは、半時間持続

答えて

2

間違いなく、毎回新しい接続を開いてすぐに閉じてください。新しい接続を開くには時間がかかりません。このアプローチでは、5〜10秒の要件を満たすのは簡単です。

2

アイドル接続は一部のルータ/ファイアウォールによって殺される可能性が非常に高いですMAX 5-10秒で送信され、検索されたことは非常に重要です。 TCP/IP接続を確立するとコストがかかりますが、30分ごとに5〜10秒と比較しても無視できます。

0

一般的に私はオープン私のTCPソケットを残すが、それは、サーバがそれらの接続を行う必要があるかに依存します。この場合、私はおそらくそれらを閉じます。あなたがクライアントにデータを送信するたびに認証しているのであれば、あなたのサーバが「誰が誰であるか」を簡単に伝えることができ、それを閉じることができるはずです。毎回。あなたのクライアントは、唯一それがサーバにデータを送信し、初めてを認証し、サーバーがクライアント接続にはいくつかのキーのマッピングを維持する必要がある場合は

、接続を開いたままにする方がよいかもしれません。

関連する問題