import java.net.*;
import java.io.*;
public class EchoClient{
public static void main(String[] args) {
try{
Socket sock = new Socket("127.0.0.1", 10001); // 클라이언트 소켓 인스텀스 생성. ip주소와 소켓 넘버를 입력한다.
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); // 콘솔상에서 사용자가 입력한 데이터를 읽어들이는 스트림 생성!
OutputStream out = sock.getOutputStream(); //서버로 데이터를 보내는 출력 스트림 생성!
InputStream in = sock.getInputStream(); // 서버로 부터 데이터를 읽어들이는 입력스트림 생성!
PrintWriter pw = new PrintWriter(new OutputStreamWriter(out)); // 문자열을 출력 할 수 있는 필터스트림 장착!
BufferedReader br = new BufferedReader(new InputStreamReader(in)); //문자를 빠르게 받아올 수 있는 버퍼필터스트림 장착!
String line = null;
while((line = keyboard.readLine()) != null){ //사용자의 입력을 받아들인다.
if(line.equals("quit")) break; // 만약 사용자가 quit를 반환 할때 while문을 빠져 나온다.
pw.println(line); // 사용자가 입력한 문자열을 서버에 전달한다.
pw.flush(); // 버버를 비운다.
String echo = br.readLine(); //서버가 전달한 문자를 읽어온다.
System.out.println("서버로부터 받은 문자열 :" + echo);// 서버로부터 읽어온 문자열을 출력한다.
}
pw.close(); //스트림 종료
br.close(); //스트림 종료
sock.close();//소켓 종료
}catch(Exception e){
System.out.println(e);
}
} // main
}