📌 此課程專注於 Linux 下的網路程式設計核心技能,從 TCP/IP 原理 到實際以 C 語言編寫 Socket 程式碼,涵蓋各種通訊模式與控制技巧,讓學員能夠自行撰寫與管理網路應用。主要內容包含:
🔹 理解 TCP/IP 協定與 client/server 運作模型。
🔹 掌握 TCP、UDP、Raw Socket 的建立與使用。
🔹 使用 Socket API 進行通訊流程實作(連線導向與非連線)。
🔹 控制 Socket 行為(getsockopt/setsockopt、ioctl、fcntl)。
🔹 名稱與地址轉換(DNS 相關 API)。
🔹 Daemon程序基本概念。
🔹 I/O 多工處理(select、poll 等模型)。
🔹 實現 廣播(Broadcast)與多播(Multicast) 通訊。
【課程大綱】
1. TCP/IP
▪ Introduction
▪ TCP/IP and OSI maping
2. Socket-What is Socket?
▪ Socket API
▪ Socket programming flows (connection-oriented)
▪ Socket programming flows (connectionless)
▪ Socket address structure
▪ Byte ordering and manipulation
▪ TCP socket API
▪ UDP socket API
3. Raw Socket
▪ Introduction
▪ Create Raw Socket
▪ Raw Socket I/O
4. Socket Option
▪ getsocketopt / setsocketopt
▪ Generic Socket option
▪ fnctl function
▪ ioctl function
▪ File operations
▪ Interface operation
5. Name and Address conversion
▪ Domain Name System
▪ Resolvers and Name server
▪ gethostbyname function
▪ gethostbyaddress function
▪ gethostname function
▪ getservbyname and getservbyport function
6. Daemon Processes
▪ Daemon characteristics
▪ Syslog daemon
▪ xinetd Daemon
7. I/O Multiplexing
▪ Blocking I/O model
▪ Nonblocking I/O model
▪ I/O multiplexing model
▪ Signal driven I/O model
▪ Asynchronous I/O model
▪ Comparison I/O module
▪ Select function
▪ poll function
8. Broadcasting & Multicasting
▪ Introduction
▪ Broadcast addresses
▪ Multicast addresses


