0

次のコードを使用してデバイスに接続しています。

このソケットコードを使用して、すべてのタスクを実行しますが、サーバーがダウンするときにいくつかの機能を実行する必要があります。私はそうするための適切な方法を見つけることができませんので、助けてください。

編集

サーバーがこのクライアントから切断されたことを検出したいのですが、トランザクションを実行した後、サーバーが切断されてボタンを無効にできることを意味します。

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();
                    }
                });
            }
         }
4

1 に答える 1

0

Try this if it helps

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();
                    }
                });
   }

It seems as if Exception handling is not there in the code you have posted, let me know if i am missing something ...

于 2012-09-17T14:57:38.100 に答える