관리 메뉴

취미개발 블로그와 마음수양

자바 채팅 기초 - 콘솔 채팅 본문

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();
	}

}