[java] 클라이언트와 서버 간의 소켓 통신 과정
소켓 통신은 클라이언트와 서버 간에 데이터를 주고받기 위한 방법입니다. 클라이언트와 서버 각각이 소켓을 생성하고, 이 소켓을 통해 데이터를 전송하고 받을 수 있습니다.
소켓 통신 과정
- 서버의 소켓 생성: 서버는 특정 포트 번호를 바인딩하는 소켓을 생성합니다. 이 포트 번호를 통해 클라이언트가 서버에 접속할 수 있습니다.
ServerSocket serverSocket = new ServerSocket(포트번호);
- 클라이언트의 접속 대기: 서버 소켓은 클라이언트의 접속을 대기합니다. 클라이언트가 서버에 접속하면 서버 소켓은 클라이언트와 통신할 소켓을 생성합니다.
Socket socket = serverSocket.accept();
- 클라이언트의 소켓 생성: 클라이언트는 서버의 IP 주소와 포트 번호를 이용하여 소켓을 생성합니다.
Socket socket = new Socket(서버IP, 포트번호);
- 데이터 전송: 클라이언트와 서버는 생성한 소켓을 통해 데이터를 주고받을 수 있습니다.
// 클라이언트에서 데이터 보내기
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("Hello, Server!");
// 서버에서 데이터 받기
InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
String message = dataInputStream.readUTF();
- 소켓 종료: 통신이 끝나면 소켓을 종료합니다.
socket.close();