0

「単純なクライアントを実行していて、サーバーに接続していますが、接続した後、データを受信できません。スレッドが終了しないように、何かを while ループに入れる必要があると思いますが、何を入れればよいかわかりません。誰か私を助けてくれますか、手がかりを教えてください。

  Thread background=new Thread(new Runnable() {
            public void run() {

                 try {
                      socket = new Socket("255.255.255.255", 9999);
                      dataOutputStream = new DataOutputStream(socket.getOutputStream());
                      dataInputStream = new DataInputStream(socket.getInputStream());
                      dataOutputStream.writeUTF("Send this text to the server");
                      Log.i("Appname", dataInputStream.readUTF());

                     } catch (someexceptionhere) {

                     }

            } 
   });
4

3 に答える 3

0

私は受け取っていた方法を破棄し、使用しています:

socket.getInputStream().read(incomingdata);

今はうまくいくようですthx

于 2012-11-05T04:14:44.863 に答える
0

自動フラッシュに設定されていない場合は、必ずストリームをフラッシュしてください。

Thread background=new Thread(new Runnable() {
  public void run() {
    try {
      socket = new Socket("255.255.255.255", 9999);
      dataOutputStream = new DataOutputStream(socket.getOutputStream());
      dataInputStream = new DataInputStream(socket.getInputStream());
      dataOutputStream.writeUTF("Send this text to the server");
      dataOutputStream.flush();
      Log.i("Appname", dataInputStream.readUTF());
    } catch (Exception _) {}
} 
于 2012-11-05T03:02:31.913 に答える
0

run()メソッドが戻るか、スレッドへのすべてのポインターがクリアされると、スレッドは強制終了されます。コードを実行し続けるには while ループを使用する必要がありますがThread.sleep()、スレッドがデバイスに過負荷をかけないように in ループを使用するようにしてください。10 ミリ秒以上で動作するはずですが、必要以上に短く設定しないでください。

于 2012-11-05T06:02:37.067 に答える