단방향 통신 순서

  1. 소켓 연결하기

클라이언트가 서버와 소켓을 연결시켜야한다.

서버는 포트번호를 가진 서버소켓을 하나, 클라이언트와 통신을 하기위한 소켓을 하나

가지고 있어야 하는데, 이 때 소켓의 갯수는 클라이언트의 갯수 + 1개 이다.

클라이언트는 소켓에 아이피와 서버 포트번호를 가지고 서버 소켓과 연결한다.

Socket socket = new Socket("127.0.0.1", 10000);

ServerSocket serverSocket = new ServerSocket(10000);
Socket socket = serverSocket.accept(); // 여기서 소켓의 개수를 늘림
  1. 버퍼 지정하기

클라이언트가 서버에게 데이터를 보내기 위해서는 쓰기버퍼를 하나 준비하여야 한다.

이후 그 쓰기버퍼로 소켓을 감싼 후, 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로 감싼 형태
  1. 데이터 전송

모든 준비가 끝낫다면, 클라이언트가 데이터를 전송할 수 있다.