Skip to content
This repository has been archived by the owner on Apr 10, 2020. It is now read-only.
/ winsock Public archive

網路程式設計-嘉義大學資訊工程學系大學部課程

Notifications You must be signed in to change notification settings

imper0502/winsock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

網路程式設計 課堂練習

use windows socket


說明

  • 使用DevCpp 5.11 開發
  • C
  • 工具> 編譯器選項> 在Linker中加入 -lwsock32

練習一

請延申本週練習,問how are you,答fine, thank you.

練習二

請延申本週練習,或增加其功能。

建議方向,但不必一樣
1. 使用不同的PORT
2. 可以指定IP
3. 可以連續問答
4. 實作"遠端計算機 or 遠端翻譯機"

練習三

  1. 本週作業,請將課堂上一對多程式延申,讓兩個連入的client可以交換資料。
  2. 請延申本週練習,將一對多程式延申,讓連入的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. 感想/心得/未來期待

About

網路程式設計-嘉義大學資訊工程學系大學部課程

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages