2011-02-07 4 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; 
} 

답변

관련 문제