1
アンドロイド2.3.3を使用して、私はソケット接続を持つバックグラウンドサービスを持っています。アンドロイドソケット書き込み中断読み取り
BufferedReader in = new BufferedReader(new InputStreamReader(mSock.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
... do stuff
}
// Socket has been closed (?)
in.close();
そして、私が呼ぶ私のメインスレッドで:そこ連続ソケットから読んでいるスレッドです
private void writeSocket(String line) {
mSock.getOutputStream().write(line.getData("US-ASCII"));
}
私はwriteSocket、書き込みを(呼び出し時)例外をスローしませんが、私はドンもう一方の端のデータを見ることはできません。また、読み込みスレッドのin.readLine()は、write()が発生すると直ちにnullを返します。私が読んだところでは、異なるスレッドから同じソケットを同時に読み書きすることは安全でしょうか?書き込みがソケットを閉じる原因になっているようですが、例外はありません。
はい、これは私の問題のようです。ソケットに悪いデータを書き込んでいるため、相手側の接続が切断されています。 – Aaron