2014-05-16 2 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 메소드 메소드를 사용하면 스트림을 플러시하는 시도 일 수 없습니다
관련 문제