package kr.co.lecture.socket; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //서버 포트 예약 ServerSocket serverSocket = new ServerSocket(9090); //클라이언트 접속 대기 Socket clientSocket = serverSocket.accept(); //클라이언트 전송 데이터 수신 스트림 InputStream clientIs = clientSocket.getInputStream(); InputStreamReader isr = new InputStreamReader(clientIs); BufferedReader br = new BufferedReader(isr); //클라이언트 전송 데이터 송신 스트림 OutputStream clientOs = clientSocket.getOutputStream(); PrintWriter pw = new PrintWriter(clientOs); //클라이언트 전송 데이터 수신 // byte[] readBytes = new byte[4008]; // int readCount = clientIs.read(readBytes); // // String clientMsg = new String(readBytes); // System.out.println(clientMsg); String msg=""; // while(true){ // String temp = br.readLine(); // if(temp != null && !temp.equals("")){ // msg += temp+"\n"; // }else{ // break; // } // } String header = br.readLine(); //System.out.println(msg); String[] headerItems = header.split(" "); String wwwRoot = "C:/www"; System.out.println("Method : " + headerItems[0]); System.out.println("filePath : " + headerItems[1]); System.out.println("Http Version : " + headerItems[2]); File file = new File(wwwRoot,headerItems[1]); FileReader fr = new FileReader(file); BufferedReader br1 = new BufferedReader(fr); String temp1=""; StringBuffer temp2 =new StringBuffer(""); while(true){ if((temp1=br1.readLine())!=null){ temp2.append(temp1); }else{ break; } } // 클라이언트에게 데이터 송신 pw.println(temp2); pw.flush(); //clientOs.write("Bye".getBytes()); clientOs.close(); clientIs.close(); clientSocket.close(); serverSocket.close(); } }