티스토리 뷰
반응형
import java.io.*; import java.net.*; class ClientThread extends Thread{ Socket socket; // 클라이언트 소켓 MultiServer server; // 서버 소켓 BufferedReader reader; // 입력 스트림 BufferedWriter writer; // 출력 스트림 String userMsg; // 메시지 String nickName; // 클라이언트 닉네임 /* * 클라이언트 쓰레드 초기화 */ public ClientThread(Socket userSocket, MultiServer mainServer) throws Exception{ socket = userSocket; server = mainServer; reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); } // Thread run 메소드 @Override public void run(){ try { while((userMsg=reader.readLine()) != null){ if (userMsg.startsWith("001")){ // Client List nickName=userMsg.substring(3); server.broadCast("002 new Client["+nickName+"]님 입장"); server.broadClientList(); } else if(userMsg.startsWith("002")){ // Chatting server.broadCast("002 "+userMsg.substring(3)); } else { } // if } // while } catch(SocketException se){ // Client Connection Exception } catch(Exception e){ System.out.println("run:"+e); } // try closeClient(); } // 메시지 전송 public void sendMessage(String server_message) { try { System.out.println("메시지 전송 :"+server_message); writer.write(server_message+"\n"); writer.flush(); // 초기화(비워짐) } catch(Exception e) { System.out.println("sendMessage 예외처리 :"+e); } } public void closeClient() { try { if(server!=null) server.deleteFromServer(this); if(writer!=null) writer.close(); if(reader!=null)reader.close(); if(socket!=null)socket.close(); } catch(Exception e) { System.out.println("closeClient:"+e); } } }
채팅 서버 구축 후 클라이언트 쓰레드 부분 설정
반응형
'IT & programming > Java' 카테고리의 다른 글
[JAVA] 논리 연산자 (0) | 2022.05.31 |
---|---|
8/23 - 채팅 소스, 채팅 클라이언트 부분 (0) | 2012.08.23 |
8/23 - 채팅 소스, 서버 구축 (0) | 2012.08.23 |
8/22 - I/O, 스트림, IOEx 예제문제 (0) | 2012.08.22 |
8/21 - AWT, 로그인 예제, Adapter클래스 이용 (0) | 2012.08.21 |
댓글