Witam,
Napisłem prosta aplikację na androida, która odbiera z serwera dane (serwer python). O ile komunikacja
Funkcja wysyłająca dana z serwera python (standardowa metoda wysyłajaca dane w komunikacji socketowej):
tmp="Operation OK"
send(bytes(tmp,'UTF-8'))
Funkcja odbierająca klienta java:
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
Log.d("ClientActivity", "C: Connecting...");
socket = new Socket(serverAddr, SERVERPORT);
connected = true;
String msg="";
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),StandardCharsets.UTF_8));
while (connected) {
if(arePasswordsEqual(et2.getText().toString(),et3.getText().toString())==true) {
Log.d("ClientActivity", "C: Sending command.");
String strL = "Test";
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(strL);
Log.d("ClientActivity", "C: Sent.");
}
else {}
String response ;
while ((response = in.readLine()) != null) {
Log.d("ClientActivity", "works before" );
msg+=response;
Log.d("ClientActivity", "works after" );
}
Log.d("ClientActivity", "Get:" + msg);
msg="";
connected=false;
}
socket.close();
Log.d("ClientActivity", "C: Closed.");
} catch (UnknownHostException e) {
e.printStackTrace();
connected = false;
} catch (IOException e) {
e.printStackTrace();
connected = false;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Niestety program nie wchodzi do pętli
while ((response = in.readLine()) != null)
i nie wiem dlaczego.