목표: TCP/IP 소켓 프로그래밍 공
기간: 2023.12.25 ~ 2023.12.29 (5일)
참고도서: TCP/IP 소켓 프로그래밍
리눅스를 위주로 사용
https://product.kyobobook.co.kr/detail/S000061352062
TCP/IP 소켓 프로그래밍 | 김선우 - 교보문고
TCP/IP 소켓 프로그래밍 | 네트워크 프로그래밍의 체계적인 학습다양한 소프트웨어 프레임워크를 사용해 손쉽게 결과물을 만들어낼 수도 있지만 저수준의 기술을 아예 모르면 문제 발생 시 대처
product.kyobobook.co.kr
Chapter 01 네트워크와 소켓 프로그래밍
네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍
인터넷 통신 수행 개체는 호스트와 라우터로 구성된다. 이 때 따라야 하는 규칙이 있다. 이를 통신 프로토콜이라고 한다. 여기서 흔히 L1 ~ L7 스위치라고 부르는 장비들의 명칭이 유래한다. 여기
zpub.tistory.com
01 TCP/IP 프로토콜 개요
02 소켓의 개념
03 소켓의 특징과 구조
04 소켓 프로그램 맛보기
실습 1-1 윈도우 소켓 프로그램 작성과 테스트
실습 1-2 리눅스 소켓 프로그램 작성과 테스트
요약
연습문제
Chapter 02 소켓 시작하기
네트워크 프로그래밍 02. 소켓 시작하기
01. 오류 처리 리눅스에서는 errno.h를 통해 오류 코드 확인 err_quit() 함수와 err_display() 함수 02. 소켓 초기화와 종료 윈속 프로그램은 최초 소켓 함수를 호출하기 전에 반드시 윈속 초기화 함수인 WSA
zpub.tistory.com
01 오류 처리
02 소켓 초기화와 종료
03 소켓 생성과 닫기
실습 2-1 윈속 초기화와 종료하기
실습 2-2 소켓 생성과 닫기
요약
연습문제
Chapter 03 소켓 주소 구조체 다루기
네트워크 프로그래밍 03. 소켓 주소 구조체 다루기
zpub.tistory.com
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 |
댓글