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) {
}
}
}
댓글 없음:
댓글 쓰기