2016-03-29 13 views
0

私はTCP/IP上のチャットシステムのようなプロジェクトに取り組んでいます。 Androidユーザーはクライアントがサーバーに接続するとき、サーバーコードはPythonで書かれます。私は実際に私の問題がはっきりしていることを説明したい。Pythonでサーバーに各クライアント(ユーザー)接続を格納する方法は?

言う2つのクライアント(ユーザ)Aとの両方がサーバに接続されているB.

があり、sock.acceptは「Aconn」および「Bconn」と言う二つsoccket接続オブジェクトを返します。だから今、私はその後、サーバーはBのオブジェクトとして簡単にAからBに受信したメッセージを転送することができますAからBにメッセージを送信する場合は

Aconn , Aaddress = sock.accept(); 

Bconn , Baddress = sock.accept(); 

以下のような は「Bconn」として利用可能です。以下のようにメッセージをBに送ることができます。

Bconn.send(datafromA); 

Bがまだサーバーに接続されていない(現時点ではオフライン)問題が発生します。 Bが将来サーバーに接続する可能性があります(オンライン)。今、この問題を解決する方法は?ユーザーが初めてサーバーに接続し、オンラインになるたびに同じソケット接続を割り当てると、そのソケット接続を保存できますか?良い解決策はありますか?ありがとうございます事前に

+0

リスト(配列)に格納する – Nick

答えて

-1

サーバに接続した後に、メッセージをファイルに保存する必要があります。特定のクライアントを検出するために、保存されたメッセージをB Client.inに送信することができます。クライアントごとに

+0

質問はメッセージの格納に関するものではなく、ソケット接続の保存方法またはクライアントの最初に接続されたソケット接続の保持方法に関するものです。 – sandesh

+0

接続を保存することはできません。そのクライアントが接続されている場合にのみ可能です。切断後、その接続には値がありません。 –

+0

には1つの解決策があります。各クライアントに固有のIDを設定し、特定のIDを持つ特定のクライアントを検出できます。 –

関連する問題