2012-04-19 8 views
0

私は、カスタムLinuxボックスへのユーザーインターフェイスとしてAndroidタブレットを使用するアプリケーションを開発しています。 2つのデバイスはTCPで接続されています(Androidはクライアント、ボックスはサーバー)。サーバーごとに1クライアントしかありません。また、私は私のTCPクライアントのコードをビルドするために、この例を使用:Androidで本当に安定したTCPクライアントの提案はありますか?

http://content.gpwiki.org/index.php/Java:Tutorials:Simple_TCP_Networking

私は同じ作家と読者を使用していますが、接続(AsyncTask)を初期化するための別の方法。 Androidとリモートシステムの間

マイTCPの相互作用は常に:

1) The Android sends a command to do something. 
    2) The Server does it and sends a reply. 

私は損失として、(5秒)TCPソケット回ケースを処理するとIOExceptionがスローされました私のソフトウェアはサーバーとの通信を再確立するプロセスを進めます。

(5秒ところで、既存のシステムコマンドを完了するために、道必要以上に長い)の問題がいくつかあります:

1) Establishing (and Re-establishing) WIFI communications to my server takes 
    a significant amount of time. It's not a big deal at start up, but running 
    through it again definitely doesn't sit well with the users. 

    2) I've seen PLENTY of examples where the command was sent, the server executed 
    it, and sent a reply, but for some reason, the reply just doesn't show up in 
    my StreamReader. 

私の知る限り、何もサーバーやリンクが間違っていませんしかし、私のAndroidはちょうど応答を受け取らなかった - 私は私のサーバーが確実にそれを送信していることを確認した。

もっと「防弾性の」TCP接続の概念については、誰かが少し考えてもいいですか?おそらく、私はこれらのエラーの少数を無視するかもしれません(それらの後にクリーンアップする方法があると仮定します...そこにありますか?)おそらく、より信頼性の高い方法でソケットに書き込み、ソケットから読み取ることができますか?

ご迷惑をおかけして申し訳ございません。ありがとう、 R.

+1

なぜあなたは接続を失っていますか?無線LAN接続が切断されているか、送信後に接続を切断していますか?たとえば、 [Wireshark](http://www.wireshark.org/)でトラフィックを確認してください。 – zapl

+2

[WiFiLock](http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html)と他のロックを使用してデバイス(&無線)のスリープ状態を維持していますか? – Jens

+0

Zapl、私は接続を失うことはない、それは問題です。 wifi、サーバー、あなたは何を持っていますか(それはすべてモバイルでバッテリーで動作しています) - 私が知る限り、すべて正常に動作しています。サーバーが私に送る応答は、私のInputStreamに決して現れません。私はちょうどこれに応答する合理的な方法を見つけることを試みている。 – Rich

答えて

0

明らかに、答えはJensが提案したものであるようです。うーん、やったよ(私が思う)... Androidの設定メニューでアクセスできるWiFiスリープ用の設定がありますが、それは明らかに役に立たないでしょう。

一方、WiFiロックを取得すると(WifiManager.createWifiLock( "タグ")を使用すると、1つを取るために)トリックをうまくやったようです。

誰かが尋ねる前に、ロックされたWi-FiまたはロックされていないWi-Fiの動作に関する情報はまったくありません。あなたのWiFiがあなたのアプリケーションでうまく動作するかどうかについて何かを伝えることはできません。すべてが言うことができるロックを取得し、バッテリーをネジ...

R.

関連する問題