소켓은 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔드 포인트 이다.

소프트웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있다.

오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다.

소켓 종류

스트림 (TCP)

  • 양방향으로 바이트 스트림을 전송한다.
  • TCP를 사용하기 떄문에 연결 지향성을 가진다.
  • 오류 수정, 전송처리, 흐름제어를 보장한다.
  • 송신된 순서에 따라 중복되지 않게 데이터를 수신하므로 → 오버헤드가 발생한다.
  • 대량의 데이터 전송에 적합하다.

데이터그램 (UDP)

  • 명시적으로 연결을 맻지 않아 비 연결형 소켓이다.
  • 데이터의 크기에 제한이 았다.
  • UDP이기 떄문에 전달이 보장되지 않으며 데이터의 손실되도 오류가 발생하지 않는다.
  • 실시간 멀티미디어 정보를 처리하기 위해 주로 사용한다.