- 使用DevCpp 5.11 開發
- C
- 工具> 編譯器選項> 在Linker中加入 -lwsock32
請延申本週練習,問how are you,答fine, thank you.
請延申本週練習,或增加其功能。
建議方向,但不必一樣
1. 使用不同的PORT
2. 可以指定IP
3. 可以連續問答
4. 實作"遠端計算機 or 遠端翻譯機"
- 本週作業,請將課堂上一對多程式延申,讓兩個連入的client可以交換資料。
- 請延申本週練習,將一對多程式延申,讓連入的client可以交換資料。
本週作業,請完成一個server程式,可以顯示:
(1)server端IP
(2)連入client的IP與port
加分:請將本週學的「取得資訊」api,結合到server程式中
(1)將tcp改為udp程式
(2)驗証tcp比udp花費較多時間實驗
加分題
(3)server週期性傳送100個字元給兩個client,2台client會將收到的文字於畫面顯示出來,可以看到2台顯示同步的效果。
課堂:
實作出udp同步傳送程式,功能如下:
(1)server端顯示client ip與port
(2)server每秒送出1行數字,由1,2,…至0,執行100次。
(3)client端顯示收到的1行數字
延申:
選擇一至多個延申,改良原本udp同步傳送程式。
(1)[A]支援5個client,以及同步傳送
(2)[B]判斷有重覆的client嗎? (如何產生重覆的client)
(3)[B]支援2至5個client(可變)(如何判斷到齊)
(4)[B]可自定/調整速度(client),如server由每秒傳1次,提高為每秒傳2次。
(5)[C]多頻道:server可提供不同頻道,client可自選頻道
(6)[C]轉台:client可調整頻道,看不同的內容
選擇一至多個延申,以改良廣播程式。
(1)[A]動態port選定:server與client可以輸入要送與收的port數字
(2)[B]多頻道:server同時以兩個頻道傳送不同資料
(3)[B]轉台:client可調整頻道,看不同的內容
(4)[C]自創相關主題,如變速…等。
選擇一至多個延申,以改良群播程式。
(1)[A]client可印出所加入的群組位址,資料來自的server ip與server port
(2)[B]多頻道:
server同時以兩個以上頻道傳送不同資料
client可在多群組內切換(轉台)
(3)[B]雙接收:
client可同時加入多個群組,並印出不同資料
(4)[B]實作「頻道台」概念,讓client在頻道台知道各頻道內容,可以收看不同頻道。
(5)[C]自創相關主題,如群組聊天室…等。
將課程中的多緒的server程式延申:
(1)[A]將client改為連續送收,並可看到同時服務的效果
(2)[B]將過去server的廣/群播程式,改為多緒版本
(3)[B]多緒版本的群組聊天室
(4)自創相關主題。
注意,記得要將用完thread後,記得free()。
(1)本專題占學期成績30%
(2)每一個人實作一個網路程式。
(3)繳交期限:6/14 早上8:00
(3)領域自定:可以是遊戲,下棋,猜謎…
(4)協定選擇:須同時用tcp與udp
(5)傳播方式:除單播外,群播與廣播,至少用一種
(6)評分標準:原創性、完整度、困難度
(7)繳交方式:說明影片(5-7分鐘)上傳至youtube,並將網址貼在平台上。書面報告上傳至教學平台。
(8)書面報告為doc檔(30M以下),內容要有:
1. 專題摘要:請簡要說明本專題所實現的成果
2. 功能說明:請列舉說明本專題所實現之功能
3. 程式簡述:請描述本專題使用到課程所教的那些部分,而哪些部分是自行設計的(不在課程內容)
4. 執行畫面
5. 程式碼 (請貼上文字,勿以貼圖方式),若有特殊編譯須求,請註明)
6. 感想/心得/未來期待