단방향 통신 순서
클라이언트가 서버와 소켓을 연결시켜야한다.
서버는 포트번호를 가진 서버소켓을 하나, 클라이언트와 통신을 하기위한 소켓을 하나
가지고 있어야 하는데, 이 때 소켓의 갯수는 클라이언트의 갯수 + 1개 이다.
클라이언트는 소켓에 아이피와 서버 포트번호를 가지고 서버 소켓과 연결한다.
Socket socket = new Socket("127.0.0.1", 10000);
ServerSocket serverSocket = new ServerSocket(10000);
Socket socket = serverSocket.accept(); // 여기서 소켓의 개수를 늘림
클라이언트가 서버에게 데이터를 보내기 위해서는 쓰기버퍼를 하나 준비하여야 한다.
이후 그 쓰기버퍼로 소켓을 감싼 후, UTF-8로 인코딩 한다.
서버는 읽기 버퍼를 준비하여야 하고 마찬가지고 읽기 버퍼로 소켓을 감싼 후
UTF-8로 디코딩 한다.
버퍼를 만들지 않으면 전송 한번에 문자열 하나만 보낼 수 있게된다.
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream(), "UTF-8")
);
// 소켓을 OutputStreamWriter로 감싸고 그것을 다시 BufferedWriter로 감싼 형태
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream(), "UTF-8")
);
// InputStreamReader로 감싸고 BufferedReader로 감싼 형태
모든 준비가 끝낫다면, 클라이언트가 데이터를 전송할 수 있다.