2014-05-16 55 views
0

我在客戶端使用這段代碼從亞馬遜EC2服務器接收消息,但此客戶端未從服務器獲取此消息。爲什麼這樣? //客戶端代碼未收到來自服務器的響應

 BufferedReader in; 
    receiveMessage(BufferedReader in_){ 
    in = in_;/*value passed to in_ is new BufferedReader(new InputStreamReader(clientsoc.getInputStream()));*/ 
    Thread t= new Thread(this,"receive Message"); 
    t.start(); 
    } 
     @Override 
     public void run() { 
      // throw new UnsupportedOperationException("Not supported yet.") 
      System.out.println("Ready to receive message from server"); 
      while(true){ 
       try { 
    String s = in.readLine(); 
        if(s != null) 
        System.out.println("Server Says : "+s); 
       } catch (IOException ex) { 
        System.out.println(ex.toString()); 
        // Logger.getLogger(tcpServer.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 
     } 

//服務器代碼將消息發送到客戶端

sendMessage(PrintWriter out_,String userID_){ 
    out = out_; 
    userID = userID_; 
    Thread t = new Thread(this,"send Message"); 
    t.start(); 
} 
     @Override 
     public void run() { 
      //throw new UnsupportedOperationException("Not supported yet."); 
      System.out.println("tcpServer: Waiting to send message to client,, is there any???"); 
      while(true){ 
       if(outgoingMessages.size()>0){ 
       InstructionMessage im = getOutGoingMessagesAtIndex(0); 
      System.out.println("tcpServer: just about to send message to client with receiver " +im.UserID + " and current thread id is " + userID); 
      im.UserID = im.UserID.trim(); 
      if(im.UserID.equals(userID.trim())) 
      { 
       String s= im.toString(); 
    System.out.println("innnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn iffffffffffffffff "+ s); 
       String responseString = ""; 
       responseString =responseString + "userId = "+ im.UserID; 
       responseString =responseString + " # importance = " + im.Importance; 
       responseString =responseString + " # text = " + 
im.MessageText; 
       responseString =responseString + " # htmlEnabled = " + im.html; 
       System.out.println("sentMessae to client is ^^^^^^^ "+ responseString); 
       out.println(responseString); 
       outgoingMessages.remove(im); 
      } 
       } 
      } 
     } 

,但不是由客戶端接收的消息。我們嘗試端口8889和1098,但沒有奏效

回答

0

嘗試,一旦你通過調用

out.flush(); 
使用println方法刷新流
相關問題