Получите строку от сервера сокета Python к клиенту сокета Java - PullRequest
0 голосов
/ 23 февраля 2019

Я делаю приложение для 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())

Я использую этот метод для отправки Командной Строки.

...