基于 Socket 接口實現(xiàn)自定義協(xié)議通信
訪問【W(wǎng)RITE-BUG數(shù)字空間】_[內(nèi)附完整源碼和文檔]
根據(jù)自定義的協(xié)議規(guī)范,使用 Socket 編程接口編寫基本的網(wǎng)絡應用軟件。 掌握 C 語言形式的 Socket 編程接口用法,能夠正確發(fā)送和接收網(wǎng)絡數(shù)據(jù)包 開發(fā)一個客戶端,實現(xiàn)人機交互界面和與服務器的通信 開發(fā)一個服務端,實現(xiàn)并發(fā)處理多個客戶端的請求程序界面不做要求,使用命令行或最簡單的窗體即可
一、實驗目的
掌握 Socket 編程接口編寫基本的網(wǎng)絡應用軟件
二、 實驗內(nèi)容
根據(jù)自定義的協(xié)議規(guī)范,使用 Socket 編程接口編寫基本的網(wǎng)絡應用軟件。
掌握 C 語言形式的 Socket 編程接口用法,能夠正確發(fā)送和接收網(wǎng)絡數(shù)據(jù)包
開發(fā)一個客戶端,實現(xiàn)人機交互界面和與服務器的通信
開發(fā)一個服務端,實現(xiàn)并發(fā)處理多個客戶端的請求程序界面不做要求,使用命令行或最簡單的窗體即可
功能要求如下:
運輸層協(xié)議采用 TCP
客戶端采用交互菜單形式,用戶可以選擇以下功能: a) 連接:請求連接到指定地址和端口的服務端
斷開連接:斷開與服務端的連接
獲取時間: 請求服務端給出當前時間
獲取名字:請求服務端給出其機器的名稱
活動連接列表:請求服務端給出當前連接的所有客戶端信息(編號、IP 地址、端口等)
發(fā)消息:請求服務端把消息轉發(fā)給對應編號的客戶端,該客戶端收到后顯示在屏幕上 g) 退出:斷開連接并退出客戶端程序
服務端接收到客戶端請求后,根據(jù)客戶端傳過來的指令完成特定任務:
向客戶端傳送服務端所在機器的當前時間
向客戶端傳送服務端所在機器的名稱
向客戶端傳送當前連接的所有客戶端信息
將某客戶端發(fā)送過來的內(nèi)容轉發(fā)給指定編號的其他客戶端
采用異步多線程編程模式,正確處理多個客戶端同時連接,同時發(fā)送消息的情況
本實驗涉及到網(wǎng)絡數(shù)據(jù)包發(fā)送部分不能使用任何的 Socket 封裝類,只能使用最底層的 C 語言形式的 Socket API
本實驗可組成小組,服務端和客戶端可由不同人來完成
二、主要儀器設備
聯(lián)網(wǎng)的 PC 機
Visual C++、gcc 等 C++ 集成開發(fā)環(huán)境。



