2011-02-07 18 views
0

私はソケットでメッセージを送信し、回答を受け取る方法があります。どのようにタイマーを置く、情報がタイムアウトを置くために例えば1秒の答えがない場合は?メッセージを受け取る際にタイムアウトを追加する - ソケット

public boolean SendForceMessage(final ForceMessageTCP message) { 
    boolean result = true; 
    System.out.println("******************SendForceMessage**********************************"); 
    new Thread() { 
     public void run() { 
      try { 
       System.out.println("IPADDRESS="+ipAddress); 
       System.out.println("PORT="+port); 
       System.out.println("Is reachable="+Ping()); 

       for(int i=0;i<message.ToBytes().length;i++) 
        System.out.println("FRAGMENT["+i+"]="+message.ToBytes()[i]); 

       socket = new Socket(ipAddress, port); 
       OutputStream socketOutputStream = (OutputStream) socket 
         .getOutputStream(); 
       socketOutputStream.write(message.ToBytes()); 

       InputStream socketInputStream=(InputStream)socket.getInputStream(); 
       byte[] buffer=new byte[256]; 
       int numberReceived=socketInputStream.read(buffer); 
       if(numberReceived!=-1) 
        new FDResponseMessage(buffer); 


       socket.close(); 
      } catch (UnknownHostException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 
    }.start(); 

    return result; 
} 

答えて

関連する問題