Я делаю приложение для Android (с использованием фоновых служб), которое получает строки с сервера Python, проблема в том, что служба Android получает строку только при прерывании связи.
Java Code
public class Receiver implements Runnable {
private Client client;
private Socket socket;
private Thread receiver;
private BufferedReader br;
public Receiver(Socket socket, Client client) {
this.socket =socket;
this.client = client;
}
@Override
public void run() {
receiver = Thread.currentThread();
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(!receiver.isInterrupted()){
String command = br.readLine();
System.out.println("Command Received: "+command);
client.parseCommand(command);
}
} catch (Exception e) {
receiver.interrupt();
try {
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
new Thread(new ConnectionController()).start();
}
}
}
Я также пытался использовать DataInputStream, но если я его использую, строка никогда не будет получена службой Android.
Код Python
def send_command(self,command):
self.currentClient[1].send(command.encode())
Я использую этот метод для отправки Командной Строки.