Language/java소스
자바 채팅 기초 - 콘솔 채팅
아라한사
2014. 4. 18. 23:04
파워자바에 나온대로... 클라이언트가 말하면 서버가 고대로 따라하게 만듦..
일단은 클라이언트 부분은 아래와 같고..
package 챕25네트웤; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class EchoClient { public static void main(String[] args) throws IOException { Socket socket = null; PrintWriter out = null; BufferedReader in = null; try{ socket = new Socket("localhost", 5555); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); }catch(UnknownHostException e){ System.err.println("localhost에 접근할 수 없습니다."); System.exit(1); }catch(IOException eg){ System.err.println("입출력 오류11"); System.exit(1); } BufferedReader user = new BufferedReader(new InputStreamReader(System.in)); String fromServer; String fromUser; while((fromServer=in.readLine())!=null){ System.out.println("서버 : "+fromServer); if(fromServer.equals("quit")) break; System.out.print("당신이 할 말은 ? : "); fromUser = user.readLine(); if(fromUser !=null){ System.out.println("클라이언트 : "+fromUser); out.println(fromUser); } } out.close(); in.close(); socket.close(); } }
여기는 서버 부분
package 챕25네트웤; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class EchoServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try{ serverSocket = new ServerSocket(5555); }catch(IOException e){ System.out.println("다음의 포트 번호에 연결할 수 없습니다 : 5555"); System.exit(1); } Socket clientSocket = null; try{ clientSocket = serverSocket.accept(); }catch(IOException e){ System.err.println("accept() 실패 "); System.exit(1); } PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String inputLine, outputLine; outputLine ="접속한 것을 환영한다 후후후"; out.println(outputLine); while((inputLine = in.readLine())!=null){ System.out.println("클라이언트가 한 말 : "+inputLine); outputLine = inputLine; out.println(outputLine); if(outputLine.equals("quit")) break; } out.close(); in.close(); clientSocket.close(); serverSocket.close(); } }