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

教學大綱:
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的管理技術
教科書
Textbook
自編講義,其主依據
精通Windows Sockets網路程式設計—使用Visual C++
孫海民著/涂治安譯
碁峰/ISBN 978-986-181-777-4
課程大綱
Syllabus
學生學習目標
Learning Objectives
單元學習活動
Learning Activities
學習成效評量
Evaluation
備註
Notes

Week
單元主題
Unit topic
內容綱要
Content summary
1 簡介C++程式語言 簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
簡介VC++ 2010 IDE軟體的操作
C++程式語言的架構、語法與變數觀念
C++程式語言之程式設計實作
1. 透過實機,了解IDE軟體的操作方式 2. 以一元二次方程式的程式設計,來輔助理解C++程式語言的架構、語法與變數觀念  
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 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的意含。  
6 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的意含。  
7 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
8 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
9 WinSock的兩種開發模式 1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
1. 執行緒的體驗
2. 阻塞模式開發
3. 非阻塞模式開發
在WinSock基礎基礎下,WinSock的程式開發可分為兩大類,阻塞模式以及非阻塞模式。本堂上課內容說明這兩種模式是如何應用到程式開發上。  
10 視窗程式與MFC的觀念介紹 1. 從Hello World談起
2. Win32 程式觀念
3. 一個具體而微的Win32 程式
4. MFC的六大關鍵技術
1. 從Hello World談起
2. Win32 程式觀念
3. 一個具體而微的Win32 程式
4. MFC的六大關鍵技術
從一個簡易的Win32視窗程式的設計技術開始講起,一直延伸到MFC的視窗程式的設計技術。這對於接下來的課程有絕對的幫助  
11 Select模式開發 1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
1. 阻塞/非阻塞模式的優缺點
2. Socket的Select模式
3. 遠端檔案下載專案開發
4. 伺服器的設計
5. 客戶端的設計
6. 結論
講解第一個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
12 WSAAsyncSelect模式開發 1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
1. WSAAsyncSelect模型分析與實作
2. WSAAsyncSelect模型優勢與不足
3. 區域網路簡易聊天室程式
4. 伺服器設計與實作
5. 客戶端設計與實作
6. 小結
講解第二個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念。  
13 WSAEventSelect模式開發 1. WSAEventSelect模型與實作
2. WSAEventSelect模型的優勢與不足
3. 網路五子棋遊戲
4. 需求分析與設計
5. 結論
1. WSAEventSelect模型與實作
2. WSAEventSelect模型的優勢與不足
3. 網路五子棋遊戲
4. 需求分析與設計
5. 結論
講解第三個Socket的管理技術,WinSock技術如何整合進MFC視窗軟體程式中,以及應用程式封包設計的概念  

教學要點概述 Overview of Teaching Points:
教材編選 Teaching Materials: ■ 自編教材 Handout by Instructor □ 教科書作者提供 Textbook
評量方法 Evaluation: 期末考 Final Exam:10%   期中考 Midterm:10%   其他評量 Others:30%   平時考 Test:50%  
教學資源 Teaching Resources: ■ 教材電子檔 Soft Copy of the Handout or the Textbook □ 課程網站 Website
扣考規定 The rule of being able to take the final exam of the course:http://eboard.ttu.edu.tw/ttuwebpost/showcontent-news.php?id=504