목표: TCP/IP 소켓 프로그래밍 공
기간: 2023.12.25 ~ 2023.12.29 (5일)
참고도서: TCP/IP 소켓 프로그래밍
리눅스를 위주로 사용
https://product.kyobobook.co.kr/detail/S000061352062
Chapter 01 네트워크와 소켓 프로그래밍
01 TCP/IP 프로토콜 개요
02 소켓의 개념
03 소켓의 특징과 구조
04 소켓 프로그램 맛보기
실습 1-1 윈도우 소켓 프로그램 작성과 테스트
실습 1-2 리눅스 소켓 프로그램 작성과 테스트
요약
연습문제
Chapter 02 소켓 시작하기
01 오류 처리
02 소켓 초기화와 종료
03 소켓 생성과 닫기
실습 2-1 윈속 초기화와 종료하기
실습 2-2 소켓 생성과 닫기
요약
연습문제
Chapter 03 소켓 주소 구조체 다루기
01 소켓 주소 구조체
02 바이트 정렬 함수
03 IP 주소 변환 함수
04 DNS와 이름 변환 함수
실습 3-1 바이트 정렬 함수 연습
실습 3-2 IP 주소 변환 함수 연습
실습 3-3 이름 변환 함수 연습
요약
연습문제
Chapter 04 TCP 서버-클라이언트
01 TCP 서버-클라이언트 구조
02 TCP 서버-클라이언트 분석
03 TCP 서버-클라이언트(IPv6)
실습 4-1 TCP 서버-클라이언트 작성
실습 4-2 TCP 서버-클라이언트 테스트
실습 4-3 TCP 서버-클라이언트(IPv6) 작성과 테스트
요약
연습문제
Chapter 05 데이터 전송하기
01 응용 프로그램 프로토콜과 데이터 전송
02 다양한 데이터 전송 방식
실습 5-1 고정 길이 데이터 전송 연습
실습 5-2 가변 길이 데이터 전송 연습
실습 5-3 고정 길이 + 가변 길이 데이터 전송 연습
실습 5-4 데이터 전송 후 종료 연습
요약
연습문제
Chapter 06 멀티스레드: 윈도우
01 스레드 기초
02 스레드 API
03 멀티스레드 TCP 서버
04 스레드 동기화
실습 6-1 스레드 생성과 종료, 인수 전달 연습
실습 6-2 스레드 우선순위 변경 연습
실습 6-3 스레드 실행 제어와 종료 기다리기 연습
실습 6-4 멀티스레드 TCP 서버 작성과 테스트
실습 6-5 임계 영역 연습
실습 6-6 이벤트 연습
요약
연습문제
Chapter 07 멀티스레드: 리눅스
01 스레드 API
02 멀티스레드 TCP 서버
03 스레드 동기화
실습 7-1 스레드 생성과 종료, 인수 전달 연습
실습 7-2 스레드 우선순위 변경 연습
실습 7-3 스레드 종료 기다리기 연습
실습 7-4 멀티스레드 TCP 서버 작성과 테스트
실습 7-5 뮤텍스 연습
실습 7-6 조건 변수 연습
요약
연습문제
Chapter 08 UDP 서버-클라이언트
01 UDP 서버-클라이언트 구조
02 UDP 서버-클라이언트 분석
03 UDP 서버-클라이언트(IPv6)
04 브로드캐스팅
실습 8-1 UDP 서버-클라이언트 작성과 테스트
실습 8-2 UDP 서버-클라이언트(IPv6) 작성과 테스트
실습 8-3 UDP 브로드캐스팅 예제 작성과 테스트
요약
연습문제
Chapter 09 소켓 옵션
01 소켓 옵션의 종류와 관련 함수
02 SOL_SOCKET 레벨 옵션
03 IPPROTO_IP, IPPROTO_IPV6 레벨 옵션
04 IPPROTO_TCP 레벨 옵션
실습 9-1 SO_REUSEADDR 옵션 테스트
실습 9-2 멀티캐스팅(IPv4) 예제 작성과 테스트
실습 9-3 멀티캐스팅(IPv6) 예제 작성과 테스트
요약
연습문제
Chapter 10 GUI 소켓 응용 프로그램: 윈도우
01 GUI 응용 프로그램
02 GUI 소켓 응용 프로그램
03 대화상자 기반 응용 프로그램
04 대화상자 기반 소켓 응용 프로그램
실습 10-1 GUI 응용 프로그램 작성과 테스트
실습 10-2 GUI 소켓 응용 프로그램 작성과 테스트
실습 10-3 대화상자 기반 응용 프로그램 작성과 테스트
실습 10-4 대화상자 기반 소켓 응용 프로그램 작성과 테스트
요약
연습문제
Chapter 11 소켓 입출력 모델: 윈도우
01 소켓 입출력 모델 개요
02 Select 모델
03 WSAAsyncSelect 모델
04 Completion Port 모델
05 소켓 입출력 모델 비교
실습 11-1 넌블로킹 소켓 연습
실습 11-2 Select 모델 TCP 서버 작성과 테스트
실습 11-3 WSAAsyncSelect 모델 TCP 서버 작성과 테스트
실습 11-4 Completion Port 모델 TCP 서버 작성과 테스트
요약
연습문제
Chapter 12 소켓 입출력 모델: 리눅스
01 소켓 입출력 모델 개요
02 Select 모델
03 Poll 모델
04 EPoll 모델
05 소켓 입출력 모델 비교
실습 12-1 넌블로킹 소켓 연습
실습 12-2 Select 모델 TCP 서버 작성과 테스트
실습 12-3 Poll 모델 TCP 서버 작성과 테스트
실습 12-4 EPoll 모델 TCP 서버 작성과 테스트
요약
연습문제
Chapter 13 직렬 통신과 블루투스 통신: 윈도우
01 직렬 통신
실습 13-1 직렬 통신 프로그램 작성과 테스트
02 블루투스 통신
실습 13-2 블루투스 장치 검색 프로그램 작성과 테스트
실습 13-3 블루투스 통신 프로그램 작성과 테스트
요약
연습문제
Chapter 14 IPv4/IPv6 + TCP/UDP 지원 데이터 전송 프로그램
01 프로젝트 개요
02 응용 프로그램 작성
실습 14-1 IPv4/IPv6 + TCP/UDP 지원 서버 작성
실습 14-2 IPv4/IPv6 + TCP/UDP 지원 클라이언트 작성
03 서버 코드 분석: 윈도우
04 서버 코드 변환: 리눅스
05 클라이언트 코드 분석
06 추가 구현 사항
'lesson > network programming' 카테고리의 다른 글
5장 데이터 전송하기 (0) | 2024.10.22 |
---|---|
네트워크 프로그래밍 04. TCP 서버-클라이언트 (0) | 2024.02.23 |
네트워크 프로그래밍 03. 소켓 주소 구조체 다루기 (0) | 2024.02.16 |
네트워크 프로그래밍 02. 소켓 시작하기 (0) | 2024.01.19 |
네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍 (0) | 2024.01.04 |
댓글