Network Socket이란?
개체(applications, entities, computers)들이 상호 통신 하는 virtual end point
예시로써 한 컴퓨터의 프로세스가 같거나 다른 컴퓨터의 다른 프로세스와 통신하는 공간
일반적으로 (IP address : Port number) 의 쌍으로 정의되며, 프로토콜에 대한 정보도 포함됨.
Client-Server Interaction via Socket (TCP)

https://scaler.com/topics/images/socket-programming.webp
연결 과정
- Server는 bind() 를 통해 socket으로 배정받은 디스크립터 번호를 ip주소와 port 번호로 변환한다.
- Server는 bind() 후 listen()을 통해 클라이언트가 connect()를 호출하기를 기다린다
- Client는 Server가 listen 상태일 때 connect()를 호출해 연결할 수 있다.
- 비밀번호나 인증키 등 조건을 비교한 뒤 Server는 Client의 connect를 accept한다
- accept 된 socket을 이용해 read and write를 주고 받는다.
Client-Server Interaction via Socket (UDP)

https://media.geeksforgeeks.org/wp-content/uploads/UDP.png
연결 과정
- TCP와 같이 Socket 할당 및 bind로 특정 ip:port 로 데이터 수신
- client의 connect 요청 후 데이터 send