특정 IP 포트가 Java에서 Android 응용 프로그램 용으로 열려 있는지 확인하고 싶습니다.예외없이 서버가 작동하는지 확인하십시오.
이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 있는지 확인 :
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
}
}
});
비동기 코드 :
이
는 호출하는 코드입니다 -ServerPort1} 연결을 허용합니다.
앱이 정지되는 것을 상상해보십시오. 그렇다면 귀하의 질문에 포함시키지 않은 코드 때문입니다. 게다가, "얼어 붙음"이란 무엇을 의미합니까? –
버튼을 눌렀을 때 멈추지 않습니다. 나는 그것이 예외의 원인이라고 확신한다. 메인 서버가 정상적으로 작동 할 때 모든 것이 정상이기 때문에 ... –
e.printStackTrace()를 빈 catch 절에 추가하여 어떤 일이 벌어지는 지 확인할 수 있습니다. – MarsAtomic