실습 코드 저장소
이 책에 나오는 모든 예제 코드는 GitHub 저장소에 올려 두었습니다. 직접 타이핑하며 익히는 것을 권하지만, 코드가 길어지는 후반부나 비교가 필요할 때 참고하면 편리합니다.
내려받기
저장소를 통째로 내려받으려면 다음 명령을 사용합니다.
# 파일: 터미널git clone https://github.com/sung2ne/textbook-socket-programming.git
Git이 없다면 저장소 페이지에서 코드를 ZIP 파일로 내려받을 수도 있습니다.
디렉터리 구성
코드는 책의 PART 순서대로 폴더에 담겨 있습니다. 같은 이름의 파일이 여러 PART에 있는 경우, 각 폴더에는 그 단계의 버전이 들어 있습니다. 예를 들어 에코 서버는 PART 01의 간단한 첫 버전과 PART 02의 개선된 버전이 각각 다른 폴더에 보존되어 있어, 코드가 어떻게 자라는지 그대로 확인할 수 있습니다.
| 폴더 | 내용 |
|---|---|
part01/ |
네트워크와 소켓의 기초 |
part02/ |
TCP 소켓 프로그래밍 |
part03/ |
UDP와 데이터그램 통신 |
part04/ |
여러 클라이언트를 동시에 |
part05/ |
실전 프로토콜 구현 |
part06/ |
고성능 동시성 (심화) |
part07/ |
보안과 견고한 서버 (심화) |
실행하기
Python 예제는 곧바로 실행합니다.
# 파일: 터미널python3 echo_server.py
C 예제는 먼저 컴파일합니다.
# 파일: 터미널cc -Wall -o echo_server echo_server.c./echo_server
서버와 클라이언트가 짝을 이루는 예제는 터미널 두 개로 실행합니다. 서버를 먼저 띄운 뒤 다른 터미널에서 클라이언트를 실행하면 됩니다. PART 07의 TLS 예제는 인증서가 필요한데, 자세한 준비 방법은 해당 장과 저장소의 안내 문서에 적어 두었습니다.
저장소의 모든 코드는 실제로 컴파일하고 실행해 동작을 확인한 것입니다. 혹시 코드가 예상대로 동작하지 않는다면, 이 PART의 마지막에 있는 업데이트 현황 페이지를 함께 확인해 주세요.