私の質問は、問題をグーグルで調べながら読んだときにこれらを信じているため、真実であることを願っている次の仮定にあります。
- ソケットの OutputStream を閉じると、ソケットも閉じます
- OutputStream の flush() メソッドは何もしません
したがって、基本的に、アプリが機能するためには、OutputStream オブジェクトからデータをフラッシュする必要があります。
詳細に興味がある場合は、次の 2 つのリンクを参照してください。
. 奇妙な動作: Android フォンから Java サーバーに画像を送信する (コードが機能する)
この問題は、OutputStream を閉じることで解決されました。それを行うと、すべてのデータがソケットの反対側にフラッシュされ、アプリがさらに機能するようになりましたが、この修正によりすぐに問題番号 2 が発生しました。対応するソケットも閉じられます。
. SocketException - isConnected() が true を返しても「ソケットが閉じられています」