0

Android アプリケーションの特定の IP ポートが Java で開いているかどうかを確認したいと思います。

これは、次を呼び出すコードです。

 button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                RetreiveFeedTask Check=new RetreiveFeedTask();
                try{
                Work=(Check.execute(Exec, ServerIP, ServerPort)).get();
                ALL.setText(Work);//Display what is returned
                }
                catch(Exception e)
                {e.printStackTrace(); }
                if(Work.equal("xyz")
                {
                    //Do Stuff
                }
                else 
                {
                                     //Do Other Stuff
                }

            }
        });

非同期コード:

class RetreiveFeedTask extends AsyncTask<String , String , String > {

    //private Exception e;
    String GotBack="3";

    @Override
    protected String doInBackground(String... params) {
        try{        
        Socket s= new Socket(params[1], Integer.parseInt(params[2]));
        s.close();
        }
        catch(Exception e){e.printStackTrace(); return "3";}


        try{ 
                Socket socket = new Socket(params[1], Integer.parseInt(params[2]));  
                PrintWriter output = new PrintWriter(socket.getOutputStream());    
                BufferedReader input=new BufferedReader(new InputStreamReader(socket.getInputStream()));
                output.println(params[0]);
                output.flush();
                String read="";
                while((read=input.readLine())!=null)
                {
                GotBack=read;

                }

                socket.close();
                }
            catch(SocketException e){e.printStackTrace(); }
            catch(Exception e){e.printStackTrace();}

        return GotBack;
    }
}

現在、ボタンを押すとフリーズします...

{ServerIP1-ServerPort1} が接続を受け入れるかどうかを確認します。そうでない場合は、知る必要があります。

4

2 に答える 2