📌 소켓(Socket)이란?

info

소켓은 컴퓨터 네트워크를 통해 프로세스 간 통신을 가능하게 하는 종착점이다.
즉, 네트워크 상에서 데이터를 송수신하기 위한 인터페이스이자 엔드포인트 역할을 한다.


✅ 소켓 통신 프로세스

  1. 서버(ServerSocket):
    • 포트 바인딩 및 소켓 생성
    • listen() 상태로 연결 요청 대기
  2. 클라이언트(ClientSocket):
    • 서버로 connect() 요청
  3. 연결(Connection):
    • 연결 수립 후 양방향 통신 가능
    • send() / receive() 함수로 데이터 송수신
  4. 종료(Close):
    • 통신 종료 시 소켓 연결 해제

✅ TCP vs UDP

항목 TCP UDP
연결 방식 연결형(신뢰성 보장) 비연결형(신속 전송)
데이터 흐름 양방향 단방향
오류 제어 있음 없음
순서 보장 보장 보장 안됨
속도 느림 빠름
사용 예 파일 전송, HTTP 스트리밍, 게임

🔹 TCP 특징

  • 연결 지향 프로토콜 (3-way handshake 사용)
  • 데이터 순서 보장
  • 재전송 및 오류 복구 기능
  • 대용량 파일 전송에 적합

🔹 UDP 특징

  • 비연결형으로 오버헤드 적음
  • 데이터그램 방식 (작은 블록 단위)
  • 신뢰성 낮지만 속도가 중요할 때 유용 (e.g. 실시간 영상, 음성 통신)

✅ 소켓 API 주요 함수

함수 설명
socket() 소켓 생성
bind() 서버 측 포트 지정
listen() 클라이언트 접속 대기
accept() 접속 수락 및 통신용 소켓 생성
connect() 클라이언트에서 서버로 연결 요청
send() / recv() 데이터 송수신
close() 소켓 종료

✅ 활용 예시

  • 웹 서버/클라이언트 간 통신
  • 채팅 프로그램, 파일 전송
  • IoT 장비 제어 통신
  • 실시간 게임 및 영상 스트리밍

연결문서

태그:

카테고리:

업데이트:

댓글남기기