2.02.2018

TCP/IP Programming - ServerProgram

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                ServerSocket serverSocket = null;
                Socket socket null;

                try {
                        serverSocket = new ServerSocket(5050);
                        System.out.println("***채팅방이 열렸습니다***");
                        System.out.println("기다리는 중...\n");
                        socket serverSocket.accept(); // method를 사용하여 client로부터 연결 요청을 기다리고 요청이 오면 연결을 맺은 후 소켓을 생성함
                        System.out.println("상대방이 입장했습니다.");
                        BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // socket.getInputStream을 통해 소켓의 입력 stream을 가져온다. 이를 통해 client가 보낸 data를 읽어 올 수 있다.

                        PrintWriter writer= new PrintWriter(socket.getOutputStream()); // socket.getOutputStream을 통해 소켓의 출력 스트림을 가져온다. client로 data 보낼 수 있다.
                        System.out.println(reader.readLine()); // 읽어 온 한 행의 문자열 데이터를 출력한다.

                        writer.println("Hi, I'm server!"); // 한 행의 byte data를 쓴다.
                        writer.flush(); // 버퍼가 다 찬 후 한꺼번에 데이터를 보내기 때문에 이를 기다리지 않고 바로 보내기 위해서 flush() method를 사용한다.
                } catch (Exception e) {

                } finally {
                        try {
                                socket.close(); // 소켓을 닫는다.
                                serverSocket.close(); // 서버소켓을 닫는다.
                        } catch (Exception e) {

                        }
                }
        }
}



댓글 없음:

댓글 쓰기