바코94 2019. 8. 4. 18:57

데이터 송수신을 위해 운영체제가 제공해주는 소프트웨어 모듈. 

 

복잡한 내부 구현과 물리적인 기능을 다 구현해 놓은 형태이기 때문에 사용하기 용이하다.

 

소켓 = 전화기 라고 이해하면된다.

 

서버측 소켓은 socket() -> bind() -> listen() -> accept() 순으로 실행되며

클라이언트측 소켓은 socket() -> connect() 순으로 실행

 

서버측 소켓은 

1. 전화기를 구입한다 ( socket() -> 소켓을 만든다.)

2. 전화기 번호를 부여받는다 (bind() -> 소켓에 IP주소와 PORT번호를 할당한다.)

3. 전화선을 연결한다. ( listen() -> 클라이언트 측 요청을 받을 수 있는 상태로 만든다.)

4. 전화 받을 준비를 하다가 받는다. ( accept() -> 데이터 요청을 받는다.)

5. 전화 통화를 한다. ( 데이터 송수신을 자유롭게 한다.)

 

클라이언트측 소켓은 자동화가 되있어 서버측 소켓보다 간단하다.

자동화의 내용은 이후 학습한다.

1. socket() 

2. connect()

3. 데이터 송수신.