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

https://scaler.com/topics/images/socket-programming.webp

연결 과정

  1. Server는 bind() 를 통해 socket으로 배정받은 디스크립터 번호를 ip주소와 port 번호로 변환한다.
  2. Server는 bind() 후 listen()을 통해 클라이언트가 connect()를 호출하기를 기다린다
  3. Client는 Server가 listen 상태일 때 connect()를 호출해 연결할 수 있다.
  4. 비밀번호나 인증키 등 조건을 비교한 뒤 Server는 Client의 connect를 accept한다
  5. accept 된 socket을 이용해 read and write를 주고 받는다.

Client-Server Interaction via Socket (UDP)

https://media.geeksforgeeks.org/wp-content/uploads/UDP.png

https://media.geeksforgeeks.org/wp-content/uploads/UDP.png

연결 과정

  1. TCP와 같이 Socket 할당 및 bind로 특정 ip:port 로 데이터 수신
  2. client의 connect 요청 후 데이터 send