國立台灣大學電機工程學系
網路與多媒體實驗

實驗一:文字聊天室

實驗內容

大綱

本實驗主要是利用主從式架構,connection-oriented連結方式,撰寫一個多群組聊天室。本實驗為了解主從式網路應用程式架構的基本實驗,為求了解透徹,請勿使用如 BCB、VC++、C#中現成的網路元件,用戶端和伺服器端間之通訊要自己寫。

目的

1. 認識並熟悉Windows Sockets API。
2. 利用Windows Sockets API(Winsock)以及簡易Windows programming技巧撰寫一個主從式架構的多群組聊天室。

設備

硬體:都有網路卡相連的兩台電腦。
軟體:任何視窗程式開發軟體,如.NET、Visual C++、Borland C++ Builder、Visual Basic、﹍ 等。
*實驗室及學校有提供Microsoft Developer Network (MSDN) Library讓同學使用。

原理

Socket Programming


實驗要求

預報

不需撰寫預報。請實際下載並使用Facebook即時通訊軟體,並將同組人員及助教設成好友。和助教與同組同學聊一下,介紹一下自己。

程式

程式中要有避免blocking的能力,用戶端必需具備下列功能:

伺服器端必需具備下列功能:

程式評分方式(需demo):

server部分:

client的部分:

最後請將程式整理在一個資料夾(分類清楚),上傳至FTP上。

結報

每組一份、打字。

結報問題(合寫一份)

  1. 請分別敘述你設計之聊天室伺服器端與用戶端(1)規劃設計(2)運作方式(3)功能特色。
  2. 本實驗的聊天室程式是使用主從式架構。你覺得是否有其他可行的方式?若有,請用功能方塊圖說明將如何運作。
  3. 請簡單敘述connection-oriented(TCP)和connectionless(UDP)方式之流程。
  4. WinSock API中有部分具有blocking的特性,請敘述此一特性並說明你如何解決這個問題,是否有其他的解決方法?

在本實驗的過程中,很多同學歷經了程式的磨練與煎熬,也努力的學習如何設計並撰寫一個大型的程式。請說明(每人一份):

最後,也是最重要的,你的參考資料為何?如果是前人的作品加以改良?請詳細說明來源(請記得參考不是罪惡,但必須有自己的東西或貢獻)。

參考資料

Borland C++ Builder版
JAVA版
MFC版
.Net版

Winsock教學文件
Windows Socket速查筆記
MFC裡的Windows Sockets

©2010 網路與多媒體實驗室@國立台灣大學
Last Modified by Shih-Lung Chao, 2010/9/7