오래 못 할 짓 하지 않기

[ 네트워크 ] 16. Socket Programming 1 본문

3학년 2학기/네트워크 (Network)

[ 네트워크 ] 16. Socket Programming 1

쫑알bot 2024. 10. 24. 23:20
728x90

 

세세한 함수를 쓰기엔 너무 많아서 함수 설명은 빼고

어떤 흐름으로 돌아가는지만 파악해보자.

 

 

 

TCP / UDP가 Port를 통해 Socket을 통해 APP과 연결이 되고

 

Socket ↔️ socket descriptor 가 소통하며 Application 에 데이터들이 들어간다.

 

 

소켓과 관련해서는 5가지 정보가 필요하다.

  • Port                - Socket()에 쓰임
  • Src addr        - bind()
  • Src port         - bind()
  • Dest addr      - connect()
  • Dest port       - sendto()

 

연결 형태는 아래와 같다.

 

1. 양쪽 모두 Socket을 만든다. ➡️ sd 생성

2. [ Server ] Port와 sd를 통해 Bind를 한다.

3. [ Server ] Bind된 정보까지 모아서 Listen()으로 연결되는 Client가 있는지 대기한다.

4. [ Client ] Server의 IP와 Port 번호를 가지고 Connect 요청을 보낸다.

5. [ Server ] Client가 보낸 Connect요청을 Accept 한다.

6. [ Server , Client ] 만들어진 sd를 통해 정보를 주고 받는다. 

   * 주고 받을 때 보내는 타입 , 크기 가 같아야 함.

    ex) A 구조체로 100크기만큼 보냈으면, 받는 곳에서도 A구조체로 100크기만큼 가져와야함

 

7. [ Server , Client ] 연결 종료

 

 

 

 

 

(출처)

한동대학교 고윤민교수님 - 컴퓨터 네트워크