Используя Android 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, write () не выдаетисключение, но я не вижу данных на другом конце, и in.readLine () в потоке чтения сразу возвращает null, когда происходит write ().Из того, что я прочитал, должно быть безопасно читать и писать одновременно с одним и тем же сокетом из разных потоков?Кажется, что запись вызывает закрытие сокета, но я не получаю исключение ..