Socket
📌 소켓(Socket)이란?
info
소켓은 컴퓨터 네트워크를 통해 프로세스 간 통신을 가능하게 하는 종착점이다.
즉, 네트워크 상에서 데이터를 송수신하기 위한 인터페이스이자 엔드포인트 역할을 한다.
✅ 소켓 통신 프로세스
- 서버(ServerSocket):
- 포트 바인딩 및 소켓 생성
listen()
상태로 연결 요청 대기
- 클라이언트(ClientSocket):
- 서버로
connect()
요청
- 서버로
- 연결(Connection):
- 연결 수립 후 양방향 통신 가능
send()
/receive()
함수로 데이터 송수신
- 종료(Close):
- 통신 종료 시 소켓 연결 해제
✅ TCP vs UDP
항목 | TCP | UDP |
---|---|---|
연결 방식 | 연결형(신뢰성 보장) | 비연결형(신속 전송) |
데이터 흐름 | 양방향 | 단방향 |
오류 제어 | 있음 | 없음 |
순서 보장 | 보장 | 보장 안됨 |
속도 | 느림 | 빠름 |
사용 예 | 파일 전송, HTTP | 스트리밍, 게임 |
🔹 TCP 특징
- 연결 지향 프로토콜 (3-way handshake 사용)
- 데이터 순서 보장
- 재전송 및 오류 복구 기능
- 대용량 파일 전송에 적합
🔹 UDP 특징
- 비연결형으로 오버헤드 적음
- 데이터그램 방식 (작은 블록 단위)
- 신뢰성 낮지만 속도가 중요할 때 유용 (e.g. 실시간 영상, 음성 통신)
✅ 소켓 API 주요 함수
함수 | 설명 |
---|---|
socket() |
소켓 생성 |
bind() |
서버 측 포트 지정 |
listen() |
클라이언트 접속 대기 |
accept() |
접속 수락 및 통신용 소켓 생성 |
connect() |
클라이언트에서 서버로 연결 요청 |
send() / recv() |
데이터 송수신 |
close() |
소켓 종료 |
✅ 활용 예시
- 웹 서버/클라이언트 간 통신
- 채팅 프로그램, 파일 전송
- IoT 장비 제어 통신
- 실시간 게임 및 영상 스트리밍
댓글남기기