教學大綱表
請遵守智慧財產權,勿使用非法影印教科書,避免觸法。
課程名稱 (中文) 網路程式設計
(英文) Network Programming
開課單位 電機工程學系
課程代碼 E4540
授課教師 林文國
學分數 3.0 必/選修 選修 開課年級 大四
先修科目或先備能力:C/C++、MFC設計技術、視窗程式設計技術以及多執行緒程式設計概念
課程概述與目標:課程概述與目標:網際網路將深遠地影響現代人的生活,學習網路程式設計為開發網路應用所必需,故而開設本課程,來培養同學具有撰寫網路程式的能力。
本課程的主要目的在於幫助學生者認識網路程式語言的技術和應用範疇,透過理論與實際專案的解說,讓學生更容易掌握網路程式語言的核心技術,最後透過實際的上機操作,加強學生對於技術的熟練與認識。

教學大綱:
1. 課前說明與軟體簡介:說明本課程講授的技術範疇和簡介作為程式開發平台的軟體IDE及其簡易使用方式。
2.簡介C++程式語言:透過實機,了解IDE軟體的操作方式,並以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念
3. 漫談網際網路與TCPIP:介紹網際網路的應用與TCPIP所扮演的角色,並簡介TCPIP和其封包的格式及各參數的作用,並說明參數與WinSock間的關係
4. WinSock基礎:檢視WinSock實作前的電腦環境,以理論與實作來說明WinSock程式設計的基本架構,並說明該架構中,各種WinSock API的意含。
5. WinSock的兩種開發模式:在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。
6. 視窗程式與MFC的觀念介紹:從一個簡易的Win32視窗程式的設計技術開始講起,一直延伸到MFC的視窗程式的設計技術。這對於接下來的課程有絕對的幫助。
7. Select模式開發:講解第一個Socket的管理技術
8. WSAAsyncSelect模式開發:講解第二個Socket的管理技術
9. WSAEventSelect模式開發:講解第三個Socket的管理技術
教科書 精通Windows Sockets網路程式設計—使用Visual C++
孫海民著/涂治安譯
碁峰/ISBN 978-986-181-777-4
參考教材 Windows Sockets Network Programming
Bob Quinn/Dave Shute
Addison-Wesley/ ISBN 0-201-63372-8

Winsock 2網路程式設計實用教程
李凌編著
文魁/ISBN 986-125-565-6
課程大綱 學生學習目標 單元學習活動 學習成效評量 備註
單元主題 內容綱要
1 課前說明與電腦運作流程的簡介 1. 課前說明
2. 從電腦談起
2. 電腦運作的流程
1. 課前說明
2. 從電腦談起
2. 電腦運作的流程
1. 說明本課程技術範疇 2. 簡介電腦的主機板以及電腦的組成單元 3. 以動畫簡介CPU如何執行一條機器碼,藉此討論電腦的運作流程 ,說明程式設計師該有的基本概念  
2 簡介C++程式語言 簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
1. 透過實機,了解IDE軟體的操作方式 2. 以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念  
3 簡介C++程式語言 簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
1. 透過實機,了解IDE軟體的操作方式 2. 以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念  
4 簡介C++程式語言 簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
1. 透過實機,了解IDE軟體的操作方式 2. 以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念  
5 簡介C++程式語言 簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
1. 透過實機,了解IDE軟體的操作方式 2. 以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念  
6 漫談網際網路與TCPIP 1. 漫談網際網路與TCPIP之漫談網際網路
2. 漫談網際網路與TCPIP之漫談OSI與TCPIP
1. 漫談網際網路與TCPIP之漫談網際網路
2. 漫談網際網路與TCPIP之漫談OSI與TCPIP
介紹網際網路的應用與TCPIP所扮演的角色,並簡介TCPIP和其封包的格式及各參數的作用,並說明參數與WinSock間的關係  
7 WinSock基礎 1. 網路檢查事項
2. Berkeley Socket
3. Windows Sockets的概念
4. 應用程式與WinSock的關係
5. WinSock的架構
6. 基本TCP Socket程式的開發
7. 基本UDP Socket程式的開發
1. 網路檢查事項
2. Berkeley Socket
3. Windows Sockets的概念
4. 應用程式與WinSock的關係
5. WinSock的架構
6. 基本TCP Socket程式的開發
7. 基本UDP Socket程式的開發
檢視WinSock實作前的電腦環境,以理論與實作來說明WinSock程式設計的基本架構,並說明該架構中,各種WinSock API的意含。  
8 WinSock基礎 1. 網路檢查事項
2. Berkeley Socket
3. Windows Sockets的概念
4. 應用程式與WinSock的關係
5. WinSock的架構
6. 基本TCP Socket程式的開發
7. 基本UDP Socket程式的開發
1. 網路檢查事項
2. Berkeley Socket
3. Windows Sockets的概念
4. 應用程式與WinSock的關係
5. WinSock的架構
6. 基本TCP Socket程式的開發
7. 基本UDP Socket程式的開發
檢視WinSock實作前的電腦環境,以理論與實作來說明WinSock程式設計的基本架構,並說明該架構中,各種WinSock API的意含。  
9 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
10 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
11 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
12 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
13 視窗程式與MFC的觀念介紹 1. 從Hello World談起
2. Win32 程式觀念
3. 一個具體而微的Win32 程式
4. MFC的六大關鍵技術
1. 從Hello World談起
2. Win32 程式觀念
3. 一個具體而微的Win32 程式
4. MFC的六大關鍵技術
從一個簡易的Win32視窗程式的設計技術開始講起,一直延伸到MFC的視窗程式的設計技術。這對於接下來的課程有絕對的幫助  
14 Select模式開發 1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
講解第一個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
15 Select模式開發 1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
講解第一個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
16 WSAAsyncSelect模式開發 1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
講解第二個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
17 WSAAsyncSelect模式開發 1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
講解第二個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
18 WSAAsyncSelect模式開發 1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
講解第二個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
19 WSAEventSelect模式開發 1. WSAEventSelect模型與實作
2. WSAEventSelect模型的優勢與不足
3. 網路五子棋遊戲
4. 需求分析與設計
5. 結論
1. WSAEventSelect模型與實作
2. WSAEventSelect模型的優勢與不足
3. 網路五子棋遊戲
4. 需求分析與設計
5. 結論
講解第三個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念  

教學要點概述:
教材編選: ■ 自編教材 □ 教科書作者提供
評量方法: 期末考:10%   期中考:10%   其他評量:30%   平時考:50%  
教學資源: ■ 教材電子檔 □ 課程網站
扣考規定:http://eboard.ttu.edu.tw/ttuwebpost/showcontent-news.php?id=504