課程設計(**)任務書
學院專業班
一、課程設計(**)題目基於udp的點到點聊天程式
二、課程設計(**)工作 2008 年 6 月 23 日起至 2008 年6 月 29日止。
三、課程設計(**) 地點軟體機房
四、課程設計(**)內容要求:
1.本課程設計的目的
(1)使學生掌握系統各功能模組的基本工作原理;
(2)使學生學會系統除錯;
(3)培養學生分析、解決問題的能力;
(4)提高學生的軟體文件寫作能力。
2.課程設計的任務及要求
1)基本要求:
(1)分析系統各功能模組的工作原理;
(2)需求分析、概要設計、詳細設計和除錯分析、測試分析、課設心得、參
考文獻(3)提出系統的設計方案;
(4)對所進行程式設計、除錯、修改。
2)創新要求:
在基本要求達到後,可進行創新設計,如:深入程式設計,高階程式設計;
3)課程設計報告編寫要求
(1)要按照書稿的規格列印謄寫課設報告
(2)報告包括目錄、緒論、正文、小結、參考文獻、附錄等
(3)報告裝訂按學校的統一要求完成
4)答辯與評分標準:
(1)考勤與學習態度:20分;
(2)完成原理分析和設計過程:完成:35分;
(3)完成除錯執行結果正確:30分;
(4)答辯:15分。
5)參考文獻:
(1)賈斌等.網路程式設計技巧與例項.北京:人民郵電出版社,2001
(2)侯捷 .《 深入淺出mfc 》 華中科技大學出版社
6)課程設計進度安排
內容天數地點
總體需求與分析構思及收集資料 1圖書館
各模組的程式設計實現,除錯與修改 3機房
撰寫**與答辯1圖書館、機房,
學生簽名
08年 6 月 29日
課程設計(**)評審意見
(1)考勤與學習態度(20分):優( )、良( )、中( )、一般( )、差( );
(2)原理與設計分析(35分):優( )、良( )、中( )、一般( )、差( );
(3)除錯與執行(30分):優( )、良( )、中( )、一般( )、差( );
(4)答辯(15分):優( )、良( )、中( )、一般( )、差( );
(5)格式規範性及考勤是否降等級:是( )、否( )
評閱人職稱: 講師
2023年 6 月30日
目錄一、需求分析 1
1.1 winsock程式設計技術簡介1
1.2 點到點聊天的原理及udp協議的簡介3
二、概要設計 6
三、詳細設計 8
四、除錯分析 13
五、測試分析 14
六、課設心得 15
七、參考文獻 16
在網路越來越發達的今天,人們對網路的依賴越來越多,越來越離不開網路,由此而產生的聊天工具越來越多,類似**,網路聊天時一類的聊天系統的發展日新月異,因此產生了製作乙個類似**的網路聊天工具的;而且通過製作該程式還能更好的學習網路軟體程式設計知識.
1.1 winsock程式設計技術簡介
目前,已成為世界上最大的tcp/ip網路。早期的站點是unix機器,一組稱為berkeley插口的約定成為inter***上unix機器之間利用tcp/ip進行通訊的標準。其他作業系統也用tcp/ip進行通訊,這極大地促進了inter***的發展。
windows插口
winsock標準定義了乙個dll介面,通常叫做winsock.dll或者wsock32.dll。
無論機器上安裝了哪乙個dll,只要函式的名字,引數含義以及最終的功能是相同的,應用程式就可以呼叫這些函式。
在插口程式設計裡乙個重要的概念就是乙個插口的埠。inter***上的每乙個站點都有乙個數字位址稱為ip位址,通常是由逗號分開的四個數。在機器上執行的程式可以隨心所欲地用插口與其他機器進行通訊。
請求到達機器時攜帶乙個埠號,乙個大於1024的數,它表明此請求是給那個應用程式的。
多數插口的工作是基於連線的:兩個程式在每一端用乙個插口形成乙個連線,然後沿著該連線收發資料。有些應用程式傾向無連線地傳送,但是這些資料的到達是沒有保障的。
客戶機/伺服器模式
在tcp/ip應用中,如何採用客戶機/伺服器模式。
客戶機一方,tcp/ip應用程式功能如下:
1) 開啟通訊通道(申請一套接字),並連線到伺服器在主機的保留埠,該埠對應伺服器的tcp/ip程序。
2) 向伺服器發出請求報文,等待接收應答。
3) 從伺服器方收到最終應答結果,或在不再請求時關閉通道並終止客戶機程序。
伺服器一方,tcp/ip應用程式動作如下:
1) 開啟通訊通道(申請一套接字),通知本地主機在某一保留埠接收客戶機請求。
2) 等待客戶請求到達指定埠。
3) 接收到請求,啟動一新程序處理使用者請求,同時釋放舊程序以響應新的客戶請求,一旦服務完成,關閉新程序與客戶的通訊鏈路。
4) 繼續等待客戶機請求。
5) 如果不想響應客戶機請求,關閉伺服器程序。
綜上所述,tcp/ip應用中的伺服器程式必須先於客戶機程序啟動,直到對客戶機的響應結束或強迫終止。
winsock1.1版通過非同步選擇機制來實現非阻塞通訊方式,對於非阻塞方式,函式被呼叫後立即返回,當傳送完成後由winsock給程序發乙個事先約定好的訊息.
winsock是windows sockets的縮寫,它作為windows和tcp/ip之間的介面。而我們都知道tcp/ip在網際網路舉足輕重的作用,如果希望了解socket,那麼berkeley socket不可不提,它是在unix下對tcp/ip進行程式設計的標準模式。winsock的設計和它很象,這樣可以使unix上的應用程式在windows平台上使用。
但是,兩者也有一些區別,如winsocket利用了windows的一些特點,而這些特點對於unix來說是沒有的。
winsock是乙個dll,它執行於windows 3.x,windows for workgroups,windows nt和windows 95下。winsock.
dll是與tcp/ip的介面,通過這個介面和網路進行連線。
winsock.dll實際上是作為winsock應用程式和tcp/ip協議棧之間的中間層。使用者的應用程式告訴winsock.
dll需要做什麼,winsock.dll將這些命令傳送到tcp/ip協議棧,由tcp/ip協議棧傳送到網路。但是重要的事情是使用者必須注意使用者使用的winsock.
dll必須和tcp/ip的版本號一致。不要以後它們都叫winsocks它們就是一樣的。所以,如果使用者在使用microsoft的tcp/ip,就不能使用trumpet winsock。
同樣,如果使用者正在使用slip連線,而希望由chameleon sampler的winsock切換到trumpet winsock,使用者必須刪除chameleon的winsock.dll,然後再安裝新的winsock.dll。
1.2 點到點聊天的原理及udp協議的簡介
利用 winsock 控制項可以與遠端計算機建立連線,並通過使用者資料文報協議 (udp)。這種可以用來建立客戶與伺服器應用程式。與 timer 控制項類似,winsock 控制項在執行時是不可見的。
用途 1 建立收集使用者資訊的客戶端應用程式,並將收集的資訊傳送到某**伺服器。
2 建立乙個伺服器應用程式,作為多個使用者的資料的匯入點。
3 建立「聊天」應用程式。
在使用 winsock 控制項時,首先需要考慮使用什麼協議。因此我選擇udp協議
udp 協議是一種無連線協議,兩台計算機之間的傳輸類似於傳遞郵件:訊息從一台計算機傳送到另一台計算機,但是兩者之間沒有明確的連線。另外,單次傳輸的最大資料量取決於具體的網路。
協議的設定
在設計時,可以按如下方式設定應用程式使用的協議:在「屬性」視窗中單擊「協議」, scku***rotocol。也可以使用程式**來設定 protocol 屬性,如下所示:
winsock1.protocol = scktcpprotocol
確定計算機的名稱
在與遠端計算機相連線的時候,需要知道它的 ip 位址或者它的「好聽的名字」。ip 位址是一串數字,每三個數字為一組,中間用點隔開(形如 ***.***.
***.***)。通常,最易記住的是計算機的「好聽的名字」。
確定計算機的名字
1 在計算機的「工作列」上,單擊「啟動」。
2 在「設定」項中,單擊「控制面板」。
3 雙擊「網路」圖示。
4 單擊「標識」選項卡。
5 在「計算機名稱」框中可以找到計算機的名稱。
上面找到的計算機名稱可以作為 remotehost 屬性的值。
udp 初步
建立 udp 應用程式比建立 tcp 應用程式還要簡單,因為 udp 協議不需要顯式的連線。乙個 winsock 控制項必須顯式地進行「監聽」,另乙個必須使用 connect 方法初始化連線。
udp 協議不需要顯式的連線。要在兩個控制項中間傳送資料,只需進行以下的三步即可(在連線的雙方):
1. 將 remotehost 屬性設定為另一台計算機的名稱。
2. 將 remoteport 屬性設定為第二個控制項的 localport 屬性。
3. 呼叫 bind 方法,指定使用的 localport。(下面將詳細地討論該方法。)
因為兩台計算機的地位可以看成「平等的」,這種應用程式也被稱為點到點的。為了具體說明這個問題,下面將建立乙個「聊天」應用程式,兩個人可以通過它進行實時的交談。
建立乙個 udp 夥伴
1 建立乙個新的 standard exe 工程。
2 將預設的窗體的名稱修改為 frmpeera。
3 將窗體的標題修改為「peer a」。
4 在窗體中放入乙個 winsock 控制項,並將其命名為 u***eera。
5 在「屬性」頁上,單擊「協議」並將協議修改為 u***rotocol。
6 在窗體中新增兩個 textbox 控制項。將第乙個命名為 txtsend,第二個命名為 txtoutput。
7 為窗體增加如下的**。
private sub form_load()
'控制項的名字為 u***eera
with u***eera
'重點:必須將 remotehost 的值
'修改為計算機的名字。
.remotehost= "peerb"
.remoteport = 1001 '連線的埠號。
.bind 1002 '繫結到本地的埠。
end with
frmpeerb.show '顯示第二個窗體。
end sub
private sub txtsend_change()
'在鍵入文字時,立即將其傳送出去。
u***eera.senddata txtsend.text
end sub
private sub u***eera_dataarrival _
(byval bytestotal as long)
dim strdata as string
u***eera.getdata strdata
txtoutput.text = strdata
end sub
建立第二個 udp 夥伴
1 在工程中新增乙個標準窗體。
2 將窗體的名字修改為 frmpeerb。
3 將窗體的標題修改為「peer b」。
4 在窗體中放入乙個 winsoc
網路檢索課程設計
校園區域網方案設計 學院 通訊學院 專業 通訊工程專業 姓名班級 學號 摘要 校園區域網已經成為當今資訊時代高等學校謀求發展的一項重要基礎設施,建設乙個技術先進 執行可靠而又經濟實用的校園區域網,是在新形勢下高等學校提高教育管理水平的乙個重要保證。本 的工作就是圍繞對 大學進行校園網路的設計和安全性...
網路課程設計2019
計算機網路課程設計 設計提綱 1 一 利用socket實現雙機通訊 1 二 基於winsock的即時通訊軟體功能原理模擬 1 三 了解最基本的rs232介面的網路程式設計方法 1 四 幀封裝 1 五 乙太網幀的傳送過程 2 六 傳送乙太網 arp包 3 七 解析ip資料報 4 八 監控ip包流量 4...
網路資料庫課程設計報告
題目 學生資訊管理系統 學號 0903032250 姓名 彭玉亭 專業 網路技術 班級 09網路2班 2010年1月 學生資訊管理是實現對學生資訊的管理,從實用的角度考慮,要求系統實現如下的功能。1 使用者管理模組 主要實現使用者登入 新增使用者和修改使用者密碼等功能。錄入使用者的使用者名稱 使用者...