import java.net.*;
import java.io.*;
public class EchoServer {
public static void main(String[] args) {
try{
ServerSocket server = new ServerSocket(10001); // 10001 소켓 넘버를 가진 서버소켓 인스턴스 생성
System.out.println("접속을 기다립니다.");
Socket sock = server.accept(); // 클라인언트의 접속을 기다린다.
InetAddress inetaddr = sock.getInetAddress(); //클라이언트의 ip주소를 가져온다.
System.out.println(inetaddr.getHostAddress() + " 가 접속했습니다.");
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 = br.readLine()) != null){ // 클라이언트로 부터 문자열을 읽어 온다.
System.out.println("클라이언트로부터 받은문자열 : " + line);
pw.println(line); //다시 클라이언트로 문자열을 보낸다.
pw.flush();
}
pw.close(); // 스트림 종료
br.close(); // 스트림 종료
sock.close(); // 소켓 종료
}catch(Exception e){
System.out.println(e);
}
} // main
}