Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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中的句柄套接字终止_Java_Android_Multithreading_Sockets - Fatal编程技术网

Java android中的句柄套接字终止

Java android中的句柄套接字终止,java,android,multithreading,sockets,Java,Android,Multithreading,Sockets,我使用以下代码连接到设备 使用这个套接字代码我可以完成所有任务,但现在我需要在服务器即将停机时执行一些功能。我无法找到合适的方法这样做,请帮助 编辑 我想检测服务器何时与此客户端断开连接,这意味着在执行事务后,服务器将断开连接,以便我可以禁用按钮 void sendRequest(){ try { this.clientSocket=new Socket("192.168.1.11",2000); this.os=new DataOutputStream(thi

我使用以下代码连接到设备

使用这个套接字代码我可以完成所有任务,但现在我需要在服务器即将停机时执行一些功能。我无法找到合适的方法这样做,请帮助

编辑

我想检测服务器何时与此客户端断开连接,这意味着在执行事务后,服务器将断开连接,以便我可以禁用按钮

void sendRequest(){

  try {
      this.clientSocket=new Socket("192.168.1.11",2000);
        this.os=new DataOutputStream(this.clientSocket.getOutputStream());
        this.in=new DataInputStream(this.clientSocket.getInputStream());

           sendFirtCommand();   
           Client t=new Client();
        t.start();

        }catch(Exception e){
            e.printStackTrace();

        }       
          }// end of the sendRequest
我的线程代码

private class Client extends Thread{
  int time;
  public void run(){
    try{
        while(true){


            //if(in.read()==-1) break;

            int size =in.available();
            if(size>0){

            byte data[]=new byte[size];
            in.readFully(data);
            String str=new String(data);

            // System.out.println(data);
            //char c[]=str.toCharArray();
            str=toHex(data);
            System.out.println(str);
        /*
            if(str.equalsIgnoreCase("050D00E7F0E1000101581D4A1D01FF")){
            System.out.println("Start Left 3"); 

            }

            */

             if(str.equalsIgnoreCase("050d00e7f0e1000101601d4a1d01ff")){
                stopAll();
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        enableAll();
                    }
                });
            }
         }
如果有用的话,试试这个

try{
        while(true){
             if(str.equalsIgnoreCase("050d00e7f0e1000101601d4a1d01ff")){
                stopAll();
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        enableAll();
                    }
                });
            }
         }
   }catch(IOException e)
   {
     handler.post(new Runnable() {
                    @Override
                    public void run() {
                        enableAll();
                    }
                });
   }

您发布的代码中似乎没有异常处理,如果我遗漏了什么,请告诉我……

您能否编辑您的帖子,以进一步解释您想要实现的目标?这是关于检测客户端是否未连接的问题吗?一些异常处理问题?您好,请不要关闭,我真的需要它的解决方案,我仍然不确定我是否理解。你说的是正确处理IOException吗?这就是如果客户端关闭连接,服务器应该得到的。确保在适当的地方捕捉并处理它们。各种方法上的Javadocs将向您展示抛出的异常及其含义