마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

자바 채팅서버에서 broadcast 에 색깔넣을수 있나요?

0 추천

안녕하세요. 자바독학중인 초보자입니다.

현재 자바 채팅서버와 안드로이드 클라이언트로 채팅을 구현하였는데
자바채팅서버에서 특정 broadcast 에 색깔을 넣을수 있나요???

채팅서버를 보면서 설명드리겠습니다.


class ChatThread extends Thread
{
 private Socket socket;
 private String id;
   
 private BufferedReader br;
 private PrintWriter pw;
 private HashMap hm;
 
 private boolean initFlag = false;
 public ChatThread(Socket socket, HashMap hm)
 {
     
  
  this.socket = socket;
  this.hm = hm;
  
  try
  {
   pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
   br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  
   id=br.readLine();
   
   System.out.println("사용자["+ id +"]님이 접속하셨습니다.");
       
   synchronized(hm)
   {
    hm.put(this.id,pw);
    broadcast("*** 닉네임 [" + id + "] 님이 접속하셨습니다 ***");
사용자가 접속하면 접속하였다고 전체메세지를 띄어줍니다.
        
   }
  }
  initFlag = true;
  }
  catch (Exception ex)
  {
   ex.printStackTrace();
  }
 }
 public void run()
 {
  try
  
  {
   
   String line = null;
   while((line = br.readLine()) != null)
   {
   broadcast(id + " : " +line);
이부분은 사용자가 입력한부분을 전체메시지로 보내는 부분입니다.
   }
   broadcast("***닉네임 [" + id + "] 님이 나갔습니다***");
사용자가 접속을 종료하면 나갔다고 전체메세지를 보냅니다.
    
  }
  catch (Exception ex)
  {
   ex.printStackTrace();
  }
  finally
  {
   synchronized(hm)
   {
    hm.remove(id);
   }
   try
   {
    if(socket!=null)
     socket.close(); 
   }
   catch (Exception ex)
   {
   }
  }
 }
 public void broadcast(String msg) throws IOException
 {
  synchronized(hm)
  {
   Collection col = hm.values();
   Iterator iter = col.iterator();
   while(iter.hasNext())
   {
    PrintWriter pw = (PrintWriter)iter.next();
    pw.println(msg);
    pw.flush();
   }
  }
 }
}
제가 궁금한건 사용자가 접속하거나 종료할때 혹은 원하는 broadcast에 글씨색깔을 넣을수있는지 궁금합니다.
예를들면 사용자가 접속할때나 종료할때는 빨간글씨로
대화를할때는 파란글씨로 보낼수있나요?
클라이언트에는 메세지를 보내기만 하기때문에 이런구문이없습니다.


혹시 이를해결할수있는방법이나 다른방법이있으면 키워드라도 알려주시면 열심히 구글검색해서 해결하겠습니다.
긴글읽어주셔서 감사합니다.

싱송 (380 포인트) 님이 2015년 2월 12일 질문

1개의 답변

+1 추천
 
채택된 답변
방법이야 여러가지 잇겟지만

보내는 문자열의 맨앞에 여러가지 케이스를 표현하는 식별자 하나(숫자나 암거나..)를 같이 보내어

그 맨앞에 식별자를 잘라내어 그걸로 비교하셔서 색상바꿔주시면 될거같은데여..
갸아악 (21,260 포인트) 님이 2015년 2월 12일 답변
싱송님이 2015년 2월 12일 채택됨
답변 감사합니다. 그런데 식별자라함은 어떤함수를써야되는거죠?
관련키워드라도알려주시면 검색이라도 하겠습니다 ㅠ
...