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} が接続を受け入れるかどうかを確認します。そうでない場合は、知る必要があります。