Я должен разработать приложение для Android, которое получает сообщение от сервера, но я могу подключиться к серверу, но не могу получить сообщение, потому что, когда я нажал на кнопку подключения блоков.Я думаю, что это из-за цикла, но я не знаю, как разрешить эту ситуацию по-другому, и буду признателен за вашу помощь.
Короче говоря, я хочу знать, есть ли другой способ определить, когда я получаю сообщение и подаркиэто.
Обновление: я нашел решение, подобное этому:
String IP;
String comando;
PrintWriter msgout;
BufferedReader msgin;
Socket socket;
private ConnectedThread mConnectedThread;
public void connect(){ //Function to Button connect
IP = edit.getText().toString();
try {
InetAddress serverAddr = InetAddress.getByName(IP); //TCPServer.SERVERIP
Socket socket = new Socket(serverAddr, 4444); //Porta 4444 serverAddr
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
msgout = out;
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
msgin = in;
zav.text1.setText("Connectado.");
//Wait to mensages
mConnectedThread = new ConnectedThread();
mConnectedThread.start();
} catch (Exception e) {
text1.setText("Erro! Não conectado." + e);
}
}
public void send(String message){
try {
msg.println(message);
} catch(Exception e) {
text1.setText("Erro! Comando não enviado." + e);
}
}
private class ConnectedThread extends Thread {
public void run(){
while(true){
//Read
try {
String str = msgin.readLine();
text1.setText(str);
} catch(Exception e) {
text1.setText("Error" + e);
}
}
}
}