我想檢查某個IP端口是否在Java中爲Android應用程序打開。檢查服務器是否正常運行
這是調用代碼:
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}接受連接,如果不是,我需要知道。
很難想象你的應用「凍結」。如果是這樣,那是因爲你的問題中沒有包含代碼。另外,「凍結」是什麼意思? – 2013-05-03 11:36:49
當按鈕保持按下時,不會凍結。我相信這是例外的原因。因爲當主服務器啓動時,一切正常...... – 2013-05-03 11:39:53
爲什麼不將e.printStackTrace()添加到空的catch子句中,以便您可以看到發生了什麼。 – MarsAtomic 2013-05-03 11:49:17