문제가있어서 해결할 수 없습니다. 나는 단지 실험을 위해 메시지를 보내고 보내는 안드로이드 클라이언트 (다중 쓰레드와 함께, 메시지를 보내는 서버 또는 그 반대로 기다릴 필요가 없다)와 윈도우 용으로 작성된 서버를 만들기 위해 노력하고있다. 안드로이드 클라이언트와 거의 동일한 기능을 제공하며, 메시지를주고받습니다 (멀티 스레드도 있음). 나는 잠시 동안 (사실) 대신 두 개의 루퍼를 작성하고 난 "Log.i"를 사용하는 경우Toast.makeText가 한 번만 호출됩니다.
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
try {
in_server = new BufferedReader(new InputStreamReader(client.getInputStream())); //receive from server
//Log.i("Message from server", in_server.readLine());
Toast.makeText(MainActivity.this, in_server.readLine(), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
Looper.loop();
}
});
, I는 서버, 클라이언트와이 완벽하게 서버 작업에서 보낸 모든 메시지가 나타납니다. 그러나 "Log.i"를 제거하고 "Toast.makeText"를 사용하고 위의 코드와 같이 두 개의 Loopers를 넣으면 서버에서 보내는 첫 번째 메시지가 수신되고 다른 메시지는 수신되지 않습니다. 이 문제를 해결하는 방법에 대한 단서가 없습니다.
제발, 무례하지 마세요, 저는 Java에서 아주 새롭습니다. 몇 가지 테스트를하고 있지만, 그저 시간 만 잃었습니다.
어리석은 것처럼 보일 수도 있지만 항상 같은 메시지입니까? 그렇다면 Toast는 실제로 여러 번 실행될 때 한 번만 실행되는 것처럼 보입니다. 그 메시지가 매번 다른 경우, 나는 잘 모릅니다 ... 그것은 아주 이상한 행동입니다. –
서버에서 "hi"와 같은 것을 보내고 "hello"다음에 "hi"만 토스트로 보냅니다. Log.i를 잠시 사용하면 (사실) LogCat에서 "hi"와 "hello"를 모두 얻습니다. 문제를 파악할 수 없습니다. – ontech7