訊號與資訊處理綜合應用課程設計
指導書2023年9月
第一設計要求
一、 設計題目
基於socket的即時通訊系統
二、 設計目的
通過綜合課程設計,使學生能夠運用《數字訊號處理》、《訊號與系統》、《通訊原理》、《物件導向的程式設計》、《計算機通訊網》、《通訊協議開發及應用》等課程的知識來設計乙個基於socket的即時通訊系統,培養學生的動手能力以及分析問題、解決問題的能力。
三、 設計要求
(一)基本要求
1. 熟練掌握物件導向的程式設計方法;
2. 實現點對點通訊,能進行文字對話傳輸,包括客戶端與伺服器端;
3. 能對系統引數進行配置。
(二)提高要求
1、實現檔案、**傳輸;
2、語音對話(兩人及兩人以上);
3、友好的對話介面。
四、 進度安排
1、 2023年9月10(星期一)上午9:00開始作課程設計動員和課程設計任務安排。
2、 2023年9月10日下午, 為調研、收集資料階段。可以到圖書館、書店或網路上查閱相關資料,主要收集有關網路程式設計的基本原理、方法等方面的資料,以及ip協議、icmp協議文字。
3、 2023年9月12日至2023年9月21日上午,編寫源程式、上機除錯。
4、 2023年9月12日星期五下午(2:00)提交課程任務結題報告,並參加答辯(優)。
五、 設計提示
1. 系統設計框圖
注:區域網中任一端點都可作為客戶端或伺服器端。
2. 設計參考資料
● tcp/ip網路程式設計技巧
● windows程式設計
● microsoft visual c++6.0從入門到精通
● delphi 網路程式設計
● 計算機通訊網基礎
六、 綜合課程設計報告書要求
(一) 報告內容
1. 設計目的。
2. 設計內容。
3. 設計要求。
4. 設計原理。
5. 軟體設計(附程式流程圖、源程式清單)。
6. 除錯過程(論述除錯中所遇到的各種問題,以及解決這些問題的思路和過程)。
7. 實驗結果分析(對設計的系統和執行結果進行簡要分析)。
8. 體會和建議。
9. 參考文獻,參考文獻的標註注意一定要符合《科技**標註國家標準》相關的規定。
第二評分標準
課程設計的成績從以下4個方面進行考核:
1) 紀律:由指導教師根據平時考勤、學習態度及是否遵守設計安排
酌情評分;
2) 答辯:由指導教師統一安排答辯時間及順序,根據設計內容及論
文提問相關問題,根據學生的回答決定答辯成績;
3) 實作:根據設計過程中,由指導教師記錄的學生程式設計及除錯的相
關情況,以及答辯時學生上機操作的情況進行評分;
4) **:**要求包括文獻綜述、開題報告、結題報告及附源程式
等內容,並對具體的格式及內容提出要求,根據學生完成**的情況及內容給出相應成績。
其中紀律佔20%,實作佔50%(含答辯),**佔30%。
按照百分比給出優、良、中、及格、不及格五個等級。
tcp/ip的歷史要追溯到70年代中期,當時arpa為了實現異種網之間的互連(interconnection)與互通(intercommunication),大力資助網間網技術的研究和開發,於2023年到2023年推出目前形式的tcp/ip體系結構和協議規範.到今天,tcp/ip技術以及internet網間網已經為廣大計算機工作者,機算機廠商和機算機使用者所接受.據統計,到2023年,internet以包含遍布歐美的五千個活動網路,超過三十萬台機算機.
作為一種事實上的工標準,tcp/ip技術方興未艾.
對tcp/ip協議來說,tcp提供傳輸層服務,ip提供網路層服務.tcp/ip協議組(或internet協議組)的分層結構及其與osi模型的對應關係如圖4所示.圖中有關協議的名稱及其基本含義如下:
(1) tcp. 為傳輸控制協議(transmission control protocol).它是提供給使用者程序的乙個可靠的全雙工位元組流的面向連線的協議.
大多數internet應用程式使用tcp.因為tcp使用ip,所以整個internet協議組也常稱為tcp/ip協議組.
(2) udp. 為使用者資料報協議 (user datagram protocol).
(3) icmp. 為網間報文控制協議 (internet control message protocol).
(4) ip. 網間協議 (internet protocol). ip協議是為tcp,udp和icmp提供分組傳送服務協議.
(5) arp. 位址轉換協議.
(6) rarp. 反向位址轉換協議.
(1) socket 原理
socket程式設計介面由4bsd unix首先提出,目的是解決網間網程序通訊問題.socket介面為程序間通訊提供了一種新的手段,它不但能用於同一機器中的程序之間的通訊,而且支援網路通訊功能.socket具有型別,反應了對使用者透明的通訊特性.
乙個完整的socket連線用乙個相關描述:
socket 是面向客戶-伺服器模型而設計的,針對客戶和伺服器程式提供不同的socket系統呼叫.
(2) socket系統呼叫
不管socket內部機制如何,它提供給應用程式設計師的最終介面是一組系統功能呼叫.下面,我們一一給出重要的socket系統呼叫.
1. 建立 socket ----- socket()
呼叫格式如下:
sockid = socket (af,type,protocol)
af : 位址族,指本socket所用位址型別.
type : 型別,指建立socket的應用程式所希望的通訊伺服器型別.
protocol : 協議,指本socket請求的協議.
2. 指定本地位址 ---- bind()呼叫
bind()將本地socket位址與所建立的socket聯絡起來,即將本socket位址賦予socket,以指定本地半相關.bind()的作用相當於給socket命名,呼叫格式為:
bind (sockid,localaddr,addrlen)
sockid : socket號.
localaddr : 本地socket位址.
addrlen : 位址長度.
3. 建立socket連線 ---- connect () 與 accept ()呼叫
這兩個系統呼叫用於完成整個相關的建立.其中connect用於建立連線 .呼叫格為:
connect (sockid,destaddr,addrlen)
destaddr : 指向對方socket位址(信宿位址)結構的指標.
accept : 用於面向連線的伺服器,其呼叫格式為:
newsock = accept (sockid,clientaddr,paddrlen)
clientaddr : 指向客戶socket位址指標.
paddrlen : 客戶socket位址長度.
4. listen() 呼叫
此呼叫用於面向連線伺服器,表明它願意接收連線,listen()在accept()之前呼叫,格式為:
listen (sockid,quelen)
quelen : 請求佇列長度.
5. 傳送資料 ---- write(),writev(),send()與sendto(),sendmsg()
用於socket資料傳送的系統呼叫一共有五個,其中三個,write(),writev()和send()用於面向連線傳輸,其餘兩個用於無連線傳輸.面向連線的呼叫可以不指定信宿位址,而無連線的呼叫必須指定.假如無連線socket的雙方均呼叫過connect(),可以認為是建立有連線的socket,也可以面向連線呼叫傳送資料.
三個面向連線呼叫三者的格式大致相同:
write (sockid,buff,bufflen) : 緩衝傳送
writev (sockid,iovector,vectorlen) : 集中傳送
send (sockid,buff,bufflen,flags) : 可控緩衝傳送
其中buff指向傳送緩衝區的指標,bufflen是傳送緩衝區大小.
用於無連線資料傳送的呼叫有兩個:
sendto (sockid,buff,bufflen,flags,dsadd,addrlen)
sendmsg (sockid,message,flags):可控集中無連線傳送.
6. 接收資料 ---- read(),readv(),recv()與recvfrom(),recvmsg()
接收資料與傳送資料系統呼叫是一一對應的,兩者引數的最大區別是,前者buffer是乙個指標,其所指單元初值為欲讀資料長度,呼叫後的值是實際讀出的值.
1)客戶--伺服器模型時序圖
下圖是面向連線客戶--伺服器模型的典型時序圖
伺服器客戶
socketsocket()
bindbind()
listen
accept() 等待客戶連線請求
阻塞 read() <> write()
2)伺服器socket位址的確定
在客戶--伺服器模型中,所有的作用者都是客戶首先發起的(如連線請求,服務請求等),因此客戶必須要知道伺服器socket位址,另外,客戶呼叫伺服器之前,可以在命令列中給出伺服器所在主機的網域名稱,根據網域名稱可以獲得伺服器主機的位址,系統呼叫為:hp=gethostbyname(host).其中host可以是伺服器主機網域名稱,返回hp是乙個指向主機位址結構的指標.
《綜合課程設計》2019 實時通訊指導書
訊號與資訊處理綜合應用課程設計 指導書2011年11月 第一設計要求 一 設計題目 基於socket的即時通訊系統 二 設計目的 通過綜合課程設計,使學生能夠運用 數字訊號處理 訊號與系統 通訊原理 物件導向的程式設計 計算機通訊網 通訊協議開發及應用 等課程的知識來設計乙個基於socket的即時通...
通訊課程設計要求
一 課程設計的目的及要求 本綜合課程設計總體目的是,使學生能熟練的應用matlab軟體實現程式設計,了解程式開發過程中用到的一些基礎知識,同時使學生熟悉應用程式開發過程,使學生從學校學習到參加工作之間有乙個良好的過渡,為今後處理相應領域的專業問題打下堅實的程式基礎。本次課程設計的基本要求是,利用ma...
通訊原理課程設計
資訊工程學院 2014 2015學年第一學期 課程設計報告 課程名稱 通訊原理課程設計 專業班級 統本通訊1201 學生學號 學生姓名 指導教師馬小青 設計任務書 基於matlab simulink的2ask數字頻帶傳輸系統建模與 摘要 本畢業設計主要運用matlab整合環境下的simulink 平...