Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (Android Studio)检查服务器状态_Java_Android_Server_Connection - Fatal编程技术网

Java (Android Studio)检查服务器状态

Java (Android Studio)检查服务器状态,java,android,server,connection,Java,Android,Server,Connection,我想让程序获取一个服务器ip+端口,并检查它是否在线。现在我遇到了一个问题,程序总是显示我“离线”。 到目前为止我所做的: public void addEntry() { btn.setOnClickListener( new View.OnClickListener() { public void onClick(View view) {

我想让程序获取一个服务器ip+端口,并检查它是否在线。现在我遇到了一个问题,程序总是显示我“离线”。 到目前为止我所做的:

public void addEntry() {
        btn.setOnClickListener(
            new View.OnClickListener()
            {
                public void onClick(View view)
                {
                    String[] tmp = txt.getText().toString().split(":");
                    String ip = tmp[0];
                    int port = Integer.parseInt(tmp[1]);
                    Object[] params = {ip, port};
                    new Server().execute(params);
                }
            });
    }

    private class Server extends AsyncTask {
        @Override
        protected Object doInBackground(Object[] objects) {
            String ip = (String) objects[0];
            int port = (Integer) objects[1];


            boolean exists;

            try {
                SocketAddress sockaddr = new InetSocketAddress(ip, port);
                // Create an unbound socket
                Socket sock = new Socket();

                // This method will block no more than timeoutMs.
                // If the timeout occurs, SocketTimeoutException is thrown.
                int timeoutMs = 20000;   // 20 seconds (to be safe)
                sock.connect(sockaddr, timeoutMs);

                    exists = true;
                    sock.close();



            } catch(IOException e) {
                e.printStackTrace();
                exists = false;


            }
            return exists;
    }

        @Override
        protected void onPostExecute(Object o) {
            boolean result = (boolean) o;
            if (result) txt2.setText("online");
            else txt2.setText("offline");
        }
    }
}
我希望任何人都能看到我的问题。提前谢谢