이롭게 현명하게

[JAVA] 서버와 클라이언트 본문

JAVA

[JAVA] 서버와 클라이언트

dev_y.h 2023. 1. 17. 16:18
728x90
반응형

 


 

목차

서버와 클라이언트

Socket과 ServerSocket 클래스

 


 


[서버와 클라이언트]

클라이언트와 서버가 연결되어있고 소켓을 통해 서로 데이터를 주고받고있다.

 

 

만약 여기서 중간에 다른 클라이언트가 이 서버에 접속을 한다면 두번째 클라이언트는 서버에 접속 할 수 없다.

 

 

서버의 소켓을 이미 첫번째 클라이언트가 독점하여 사용하고 있기 때문이다.

하나의 소켓에 동시에 2개의 컴퓨터가 연결 된다면 데이터가 섞이기 때문에 동시에 연결될 수는 없다. 

두번째 클라이언트가 서버를 사용하기 위해서는 첫번째 클라이언트가 소켓을 통해 서버 사용을 끝날때 까지 기다려야한다.

하지만 서버는 동시에 여러개의 클라이언트를 상대해야하기 때문에 다른 방법이 필요하다.

 

 

서버는 연결 요청만을 받는 소켓을 따로 가지고있다.

 

모든 클라이언트는 이 곳으로 연결 요청을 해야한다.

 

 

연결 요청이 승인되면 서버는 해당 클라이언트를 연결하는 새로운 소켓을 만든다.

클라이언트는 이 새로운 소켓을 사용하여 데이터를 주고받는다.

 

 

 

 


[Socket과 ServerSocket 클래스]

Socket크래스와 ServerSocket 클래스는 클라이언트 측과 서버측을 구현하는데 사용한다.

Socket 클래스 : 모든 특수한 시스템의 세부사항을 감추기 때문에 플랫폼 독립적이 될 수 있다.

ServerSocket 클래스 : 서버가 클라이언트에 대한 연결을 기다리고 받아들일 수 있는 소켓을 구현한다.

 

클라이언트가 서버에 접근 하는 과정은 다음과 같다.

1. 서버가 시작된다.

 

 

2. 클라이언트가 서버에 연결을요청한다.

 

 

3. 소켓이 생성되고 연결이 만들어진다.

 

 

4. 소켓이 생성된다.

 

 

5. 클라이언트의 출력스트림이 연결된다.

 

 

6. 클라이언트의 입력스트림이 연결된다.

 

 

자바에서 서버는 5단계를 거쳐 생성된다.

1. ServerSocket 객체 생성

2. accept() 메소드 호출

3. 소켓으로부터 스트림 객체를 얻는다.

4. 상호 대화 단계

5. 종료

 

 


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊

댓글과 좋아요는 큰 힘이 됩니다!

 

더보기

[ 참고자료 ]

 

 

 

 

728x90
반응형
Comments