0

以下のコードの何が問題なのか、誰か教えてもらえますか? while ループ ブロックを実行しないのはなぜですか? マニフェスト ファイルに必要な権限があります。

public class MainActivity extends Activity {

static TextView t;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    t=(TextView)findViewById(R.id.txt);
    NetConnect th=new NetConnect();
    th.start();
}
public class NetConnect extends Thread {
    public void run(){
        try{
            runOnUiThread(new Runnable(){public void run(){t.append("Thread start...");}});
            Socket client = new Socket("time-b.nist.gov", 13);
            BufferedReader in =new BufferedReader(new InputStreamReader(client.getInputStream()));
            String str;
            while((str=in.readLine())!=null)
                t.append(str);
        }catch(Exception e){
            Log.e("Internet:",e.toString());
        }
    }
}
4

1 に答える 1

0

「time-b.nist.gov」に問題があるようです。Java プロジェクトで次の簡単なソケットの例を試しました (Android プロジェクトの作成を簡略化するため)。

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class TestSocketClass {

    public static void main(String[] args) {
        String hostname = "time-b.nist.gov";

        try {
            Socket theSocket = new Socket(hostname, 13);
            InputStream timeStream = theSocket.getInputStream();
            StringBuffer time = new StringBuffer();
            int c;
            while ((c = timeStream.read()) != -1)
                time.append((char) c);
            String timeString = time.toString().trim();
            System.out.println("It is " + timeString + " at " + hostname);
        } // end try
        catch (UnknownHostException ex) {
            System.err.println(ex);
        } catch (IOException ex) {
            System.err.println(ex);
        }
    }
}

次の場合は何も返されませんString hostname = "time-b.nist.gov";:

それは時間です-b.nist.gov

しかし、それを次のように変更すると、次のようString hostname = "time.nist.gov";になります。

time.nist.gov で 56438 13-05-26 11:49:57 50 0 0 809.9 UTC(NIST) *

于 2013-05-26T11:54:45.007 に答える