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 ] 연결 종료


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