본문 바로가기
lesson/network programming

네트워크 프로그래밍 00. 시작

by Peter Choi 2023. 12. 27.
반응형

목표: 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 네트워크와 소켓 프로그래밍

https://zpub.tistory.com/269

 

네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍

인터넷 통신 수행 개체는 호스트와 라우터로 구성된다. 이 때 따라야 하는 규칙이 있다. 이를 통신 프로토콜이라고 한다. 여기서 흔히 L1 ~ L7 스위치라고 부르는 장비들의 명칭이 유래한다. 여기

zpub.tistory.com

01 TCP/IP 프로토콜 개요
02 소켓의 개념
03 소켓의 특징과 구조
04 소켓 프로그램 맛보기
실습 1-1 윈도우 소켓 프로그램 작성과 테스트
실습 1-2 리눅스 소켓 프로그램 작성과 테스트
요약
연습문제

Chapter 02 소켓 시작하기

https://zpub.tistory.com/290

 

네트워크 프로그래밍 02. 소켓 시작하기

01. 오류 처리 리눅스에서는 errno.h를 통해 오류 코드 확인 err_quit() 함수와 err_display() 함수 02. 소켓 초기화와 종료 윈속 프로그램은 최초 소켓 함수를 호출하기 전에 반드시 윈속 초기화 함수인 WSA

zpub.tistory.com

01 오류 처리
02 소켓 초기화와 종료
03 소켓 생성과 닫기
실습 2-1 윈속 초기화와 종료하기
실습 2-2 소켓 생성과 닫기
요약
연습문제

Chapter 03 소켓 주소 구조체 다루기

https://zpub.tistory.com/321

 

네트워크 프로그래밍 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 추가 구현 사항

반응형

댓글