サーバーへの接続の一部は完了していますが、常に入力ストリームからデータを読み取ることができるわけではなく、一度しか読み取ることができません。
public void startSSLClient() throws IOException {
inf = new Inflater();
mSocketBufferReader = new BufferedReader(new InputStreamReader(mSslSocket.getInputStream()));
new Thread() {
boolean online =false;
String s;
@Override
public void run() {
try {
while ( true ) {
String str = mSocketBufferReader.readLine();
if (!TextUtils.isEmpty(str)) {
Logger.e("PacketReader","process packet : "+str);
}
}
}
catch (Exception e) {
System.out.println("Error: " + e);
}
}
}.start();
}
これを試してみると、常に入力ストリームから読み取ることができます。
public void startSSLClient() throws IOException {
inf = new Inflater();
new Thread() {
boolean online =false;
String s;
@Override
public void run() {
try {
while ( true ) {
BufferedReader mSocketBufferReader = new BufferedReader(new InputStreamReader(mSslSocket.getInputStream()));
String str = mSocketBufferReader.readLine();
if (!TextUtils.isEmpty(str)) {
Logger.e("PacketReader","process packet : "+str);
}
}
}
catch (Exception e) {
System.out.println("Error: " + e);
}
}
}.start();
}
理由はわかりません。グローバルフィールドを使いたいだけです。常に新しいローカル フィールドを使用する必要はありません。