Есть вот такой код клиентской части:
Socket remoteServer;
remoteServer = new Socket("192.168.0.55",4445);
BufferedReader in = new BufferedReader(new InputStreamReader(remoteServer.getInputStream()));
PrintWriter out = new PrintWriter(remoteServer.getOutputStream(),true);
BufferedReader ios = new BufferedReader(new InputStreamReader(System.in));
String fromClient,fromserver;
while ((fromClient = ios.readLine())!=null)
{
out.println(fromClient);
//out.write(fromClient);
fromserver = in.readLine();
System.out.println(fromserver);
if (fromClient.equalsIgnoreCase("close")) break;
}
out.close();
in.close();
ios.close();
remoteServer.close();
Т.е подключается к серверу и держит открытым соединение за счёт цикла, пока не придет "close". Но тут также держит и за счёт System.in, т.к данные получает с консоли. Но вот надо переделать под Андроид и проблема в том, что надо текст получать из editText, и вот на этом моменте застрял.
Если сделать вот так:
String fromClient = "Text",fromserver;
out.println(fromClient);
//out.write(fromClient);
fromserver = in.readLine();
System.out.println(fromserver);
//if (fromClient.equalsIgnoreCase("close")) break;
То вроде как и работает, НО, соединение естественно после отправки закрывается, т.к нету цикла который бы держал открытым соединение. В общем как сделать что-бы по аналогии с первым куском кода, держалось открытым до получения "close"? Спасибо.
Когда я делал Socket-соединение, то всю работу сокета я перенес в Service, в котором чтение-запись были в отдельном потоке. Думаю, что это наиболее подходящий вариант.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости