소켓 통신 과정 정리 및 데이터 흐름 설명

2024. 5. 28. 15:56카테고리 없음

 

소켓 통신 과정

 

1. 클라이언트 데이터 전송 준비
클라이언트에서는 Scanner를 사용하여 사용자가 입력한 데이터를 읽고, 
해당 데이터를 클라이언트의 출력 스트림인 OutputStream을 통해 서버로 전송합니다.

2. 서버 데이터 수신 준비:
서버에서는 클라이언트로부터의 데이터를 읽기 위해 클라이언트의 
입력 스트림인 InputStream을 사용합니다.

3. 서버의 데이터 처리 및 응답:
서버는 받은 데이터를 처리한 후, 클라이언트로 메시지를 보내기 위해 
클라이언트의 출력 스트림을 감싸는(PrintWriter) 객체를 
사용하여 클라이언트로 메시지를 전송합니다

 

데이터 흐름 설명

 

1. 클라이언트가 서버에 연결:
클라이언트가 서버에 연결을 시도하고, 서버는 클라이언트의 연결을 수락합니다.

2. 클라이언트 데이터 전송:
클라이언트는 주기적으로 자신의 포트 번호와 10을 결합한 문자열을 서버로 전송합니다.

3. 서버가 데이터 읽기:
서버는 클라이언트로부터 데이터를 읽고, 이를 TestSocket.data 변수에 저장합니다.

4. 서버가 데이터 전송:
OutputTarget 클래스는 주기적으로 TestSocket.data 
변수를 모든 클라이언트에게 전송합니다.

5. 클라이언트가 데이터 읽기:
클라이언트는 서버로부터 데이터를 읽고, 이를 콘솔에 출력합니다.

요약
클라이언트가 서버로 포트 번호 > 10 형식의 데이터를 전송하면, 
서버는 이를 TestSocket.data 변수에 저장하고, 
다른 모든 클라이언트에게 전송합니다. 
클라이언트는 서버로부터 받은 데이터를 출력합니다