학습목표
- 소켓 프로그래밍 이해
- 에코 서버-클라이언트 실습
- 채팅 프로그램 실습
TCP/IP 프로토콜 구조 (4계층)
- 네트워크 접근 계층
- 인터넷 계층 – IP 주소
- 전송 계층 – TCP/UDP, 포트 번호
- 응용 계층 – 애플리케이션 데이터
소켓(Socket)의 개념
- 소켓: TCP/IP 네트워크 상에서 통신을 위한 소프트웨어 접속점
- 응용 프로그램 ↔ 소켓 ↔ TCP ↔ IP
- TCP 소켓: 신뢰성 있는 연결 방식
- UDP 소켓: 빠르지만 비신뢰적 방식
socket vs websocket
| 항목 | Socket | WebSocket |
|---|---|---|
| 연결 방식 | TCP/IP 기반 | HTTP 기반 |
| 구현 방식 | 동기/비동기 모두 가능 | 주로 비동기 |
| 보안 | TCP 보안 | SSL/TLS 가능 |
| 사용처 | 서버/서버 통신 | 웹 채팅, 실시간 게임 등 |
다중 클라이언트 (Thread 활용)
- 송신 쓰레드: 사용자 입력 전송
- 수신 쓰레드: 서버 메시지 출력
- 서버: 각 클라이언트를 별도 쓰레드로 관리
- ⚠️ 동기화/예외처리 주의