




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實現(xiàn)一個一對一的聊天程序一 實習(xí)題目實現(xiàn)一個一對一的聊天程序。其基本過程如下:服務(wù)器首先啟動,創(chuàng)建套接字后等待客戶的連接;客戶啟動以后,創(chuàng)建套接字,然后和服務(wù)器建立連接;連接建立后,客戶機和服務(wù)器可以通過建立的套接字連接進行通信。服務(wù)器和客戶端可以是一臺電腦上的兩個進程,也可以分別部署在兩臺電腦上。二 原理概述本題是一個簡單的聊天室程序,采用客戶/服務(wù)器模式,分為客戶端程序和服務(wù)器端程序。由于服務(wù)器只能支持一個客戶,實際上是一個點對點通信的程序??蛻舳顺绦蚝头?wù)器程序通過網(wǎng)絡(luò)交換聊天字符串內(nèi)容,并在窗口的列表框中顯示。重點是流式套接字對象的使用,處理網(wǎng)絡(luò)事件的方法。本此課程設(shè)計是利用網(wǎng)絡(luò)聊天程
2、序的基本設(shè)計思想,并按照網(wǎng)絡(luò)通信的協(xié)議設(shè)計出來的一個基于UDP的網(wǎng)絡(luò)聊天程序。端口號拼接到IP地址即構(gòu)成了套接字(socket)。套接字(socket)=(IP地址:端口號)。在網(wǎng)絡(luò)編程時常常把套接字作為應(yīng)用進程和運輸層協(xié)議之間的接口。當(dāng)應(yīng)用進程(客戶或服務(wù)器)需要使用網(wǎng)絡(luò)進行通信時,必須首先發(fā)出socket系統(tǒng)調(diào)用,請求操作系統(tǒng)為其創(chuàng)建一個“套接字”。這個調(diào)用的實際效果是請求操作系統(tǒng)把網(wǎng)絡(luò)通信所需要的一些資源分配給該應(yīng)用進程。操作系統(tǒng)為這些資源的總和用一個叫做套接字描述符的號碼來表示,然后把這個套接字描述符返回給應(yīng)用進程。此后,應(yīng)用進程所進行的網(wǎng)絡(luò)操作都必須使用這個套接字描述符。三 設(shè)計方案
3、1 問題分析: 本次計算機網(wǎng)絡(luò)與通信實習(xí)的任務(wù)是設(shè)計一個一對一的聊天程序。根據(jù)課程設(shè)計要求程序采用客戶/服務(wù)器模式,分為客戶端程序和服務(wù)器端程序。其基本過程如下:服務(wù)器首先啟動,創(chuàng)建套接字后等待客戶的連接;客戶啟動以后,創(chuàng)建套接字,然后和服務(wù)器建立連接;連接建立后,客戶機和服務(wù)器可以通過建立的套接字連接進行通信。服務(wù)器和客戶端可以是一臺電腦上的兩個進程,也可以分別部署在兩臺電腦上??蛻舳顺绦蚝头?wù)器程序通過網(wǎng)絡(luò)交換聊天字符串內(nèi)容,并在窗口的列表框中顯示。重點是流式套接字對象的使用,處理網(wǎng)絡(luò)事件的方法。2 設(shè)計思路:程序采用VB語言編寫,運用UDP面向無連接數(shù)據(jù)報協(xié)議完成實驗,程序的核心是運用的
4、空間為VB網(wǎng)絡(luò)編程中的Winsock控件。數(shù)據(jù)之前不必建立連接,只需要將Winsock綁定到一個端口上,其他無連接協(xié)議的Winsock若想向此處發(fā)送數(shù)據(jù),需要指明地址和端口。(1)將 RemoteHost 屬性設(shè)置為另一臺計算機的名稱或者IP地址。(2)將 RemotePort 屬性設(shè)置為另一臺計算機Winsock控件所綁定的 LocalPort 屬性。(3)調(diào)用 Bind 方法,指定使用的LocalPort。3 系統(tǒng)模塊結(jié)構(gòu):根據(jù)程序設(shè)計要求,設(shè)計出整個網(wǎng)絡(luò)聊天程序的設(shè)計框圖。 服務(wù)器 客戶端數(shù)據(jù)創(chuàng)建Winsock控件綁定到一個端口關(guān)閉連接創(chuàng)建Winsock控件綁定到一個端口關(guān)閉連接數(shù)據(jù) 系
5、統(tǒng)總設(shè)計流程圖 主程序在對方接收端口中顯示發(fā)送消息調(diào)用發(fā)送消息函數(shù)txtSend_Change采用Winsock 控件連接服務(wù)器端開始結(jié)束開始采用Winsock 控件連接客戶端調(diào)用發(fā)送消息函數(shù)txtSend_Change在對方接收端口中顯示發(fā)送消息結(jié)束服務(wù)器端主流程圖 客戶端主流程圖四 程序編寫1 通過建立工程,設(shè)計出網(wǎng)絡(luò)服務(wù)器程序,其設(shè)計過程及源程序代碼如下。(1)創(chuàng)建一個新的Standard EXE 工程。(2)將缺省的窗體的名稱修改為PeerA。(3)將窗體的標題修改為“服務(wù)器”。(4)在窗體中放入一個 Winsock 控件,并將其命名為 UDPSever。(5)在Winsock 控件的
6、“屬性”頁上,單擊“Protocol”屬性,并將該屬性值修改為 UDPProtocol。(6)在窗體中添加兩個TextBox控件。將第一個命名為 txtSend,第二個命名為 txtOutput。(7)為窗體增加如下的代碼。UDP聊天服務(wù)器程序: Private Sub Combo1_Click() TxtSend.Font.Name = Combo1.TextEnd SubPrivate Sub Check1_Click() '設(shè)置隸書字體If Check1.Value = 1 Then TxtSend.FontName = "隸書" Else TxtSend.F
7、ontName = "宋體" End IfEnd SubPrivate Sub Check2_Click() '設(shè)置下劃線字體If Check2.Value = 1 Then TxtSend.FontUnderline = True Else TxtSend.FontUnderline = False End IfEnd SubPrivate Sub Check3_Click() '設(shè)置斜體字體If Check3.Value = 1 ThenTxtSend.FontItalic = TrueElse TxtSend.FontItalic = False En
8、d IfEnd SubPrivate Sub Check4_Click() '設(shè)置字體大小為18榜If Check4.Value = 1 Then TxtSend.FontSize = 18Else TxtSend.FontSize = 10 End IfEnd SubPrivate Sub Form_Load()Combo1.Text = TxtSend.Font.Name 設(shè)置下拉框,選擇更多的字體 Dim i As Integer For i = 0 To Screen.FontCount - 1 Combo1.AddItem Screen.Fonts(i) NextWith U
9、DPSever 控件的名字為UDPSever.RemoteHost= "4" 服務(wù)器主機IP名稱.RemotePort = 1001 連接的端口號.Bind 1002 綁定到本地的端口End WithEnd SubPrivate Sub txtSend_Change() UDPSever.SendData txtSend.Text 在鍵入文本時,立即將其發(fā)送出去End SubPrivate Sub UDPSever _DataArrival (ByVal bytesTotal As Long) 在服務(wù)器接收框中顯示客戶端傳送的消息Dim strData
10、 As StringUDPSever.GetData strDatatxtOutput.Text = strDataEnd Sub2 通過建立工程,設(shè)計出網(wǎng)絡(luò)客戶端程序,其設(shè)計過程及源程序代碼如下。UDP聊天客戶端程序:(1) 在工程中添加一個標準窗體。(2) 將窗體的名字修改為 frmPeerB。(3) 將窗體的標題修改為“Peer B”。(4) 在窗體中放入一個 Winsock 控件,并將其命名為 udpClient。(5) 在“屬性”頁上,單擊“協(xié)議”并將協(xié)議修改為“UDPProtocol”。(6) 在窗體上添加兩個 TextBox 控件。將第一個命名為 txtSend,第二個命名為 t
11、xtOutput。(7)在窗體中添加如下的代碼。 Private Sub Form_Load()Combo1.Text = TxtSend1.Font.Name 設(shè)置下拉框,選擇更多的字體 Dim i As Integer For i = 0 To Screen.FontCount - 1 Combo1.AddItem Screen.Fonts(i) NextWith udpClient 控件的名字為udpPeerB.RemoteHost="4“ 客戶端主機IP名稱.RemotePort = 1002 連接的端口號.Bind 1001 綁定到本地的端口 End
12、WithEnd SubPrivate Sub txtSend_Change()udpClient.SendData txtSend.Text 在鍵入文本時,立即將其發(fā)送出去End SubPrivate Sub udpClient_DataArrival (ByVal bytesTotal As Long) 在客服端接收框中顯示服務(wù)器傳送的消息Dim strData As StringudpPeerB.GetData strDatatxtOutput.Text = strDataEnd Sub五 運行結(jié)果(1)運行界面(2)服務(wù)器發(fā)送消息通過在發(fā)送消息欄輸入文字,并在下面字體選擇欄中選擇自己喜歡
13、的字體,進行發(fā)送,消息馬上即可在客戶端接收。如圖(3)客戶端發(fā)送消息同樣,客戶端發(fā)送消息與上圖類似。六 實習(xí)心得和體會計算機網(wǎng)絡(luò)與通信課程講述計算機網(wǎng)絡(luò)的原理,尤其是TCP/IP協(xié)議棧的原理和應(yīng)用,是一門理論性、應(yīng)用性、實踐性都比較強的課程。計算機網(wǎng)絡(luò)與通信實習(xí)是學(xué)習(xí)完計算機網(wǎng)絡(luò)與通信課程后進行的一次全面的綜合實習(xí),是本專業(yè)實踐性重要環(huán)節(jié)之一。計算機網(wǎng)絡(luò)與通信實習(xí)是從原理和實踐的角度,在計算機上編程模擬實現(xiàn)計算機網(wǎng)絡(luò)的基本協(xié)議,或者架設(shè)一個小型局域網(wǎng)并對其進行相應(yīng)配置。通過一周的實習(xí),我對計算機網(wǎng)絡(luò)的原理有了非常深刻的認識和理解,同時進一步鍛煉了自己的動手能力。本次計算機網(wǎng)絡(luò)課程設(shè)計讓我對計算機網(wǎng)絡(luò)協(xié)議有了更深入的了解,以前只是知道UDP及TCP等協(xié)議,但是不知道能夠具體的用來編寫小軟件,這也是在計算機網(wǎng)絡(luò)學(xué)習(xí)過程中打下的基礎(chǔ),有了計算機網(wǎng)絡(luò)基礎(chǔ)知識,讓我在具體實踐過程中更加順利。借助本次實驗自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 罐裝水包裝設(shè)計原理與實戰(zhàn)應(yīng)用考核試卷
- 塑造成功的習(xí)慣力
- 探索創(chuàng)新教學(xué)
- 西華師范大學(xué)《人體及動物生理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省宜興市官林學(xué)區(qū)市級名校2025屆中考考前熱身試卷化學(xué)試題含解析
- 遼寧省大連重點達標名校2024-2025學(xué)年初三5月考物理試題含解析
- 日照職業(yè)技術(shù)學(xué)院《城市景觀雕塑造型》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東外貿(mào)職業(yè)學(xué)院《二語習(xí)得》2023-2024學(xué)年第一學(xué)期期末試卷
- 開封文化藝術(shù)職業(yè)學(xué)院《高級朝鮮語》2023-2024學(xué)年第一學(xué)期期末試卷
- 2021-2022學(xué)年北京市海淀區(qū)第一學(xué)期期末高二期末語文試卷
- 碳基材料的合成與應(yīng)用
- 七年級下冊英語單詞默寫表直接打印
- 2024-2024年江蘇省普通高中學(xué)業(yè)水平測試物理試卷(含答案)
- 菜品退單原因分析報告
- 《塵肺病及其預(yù)防》課件
- 教學(xué)勇氣:漫步教師心靈
- 醫(yī)務(wù)人員法律法規(guī)知識培訓(xùn)課件
- 2022年消毒技術(shù)規(guī)范
- 大學(xué)生就業(yè)指導(dǎo)職業(yè)生涯規(guī)劃書
- 中國電信股份有限公司廣東公司4G四期規(guī)劃基站(廣州、清遠、韶關(guān)分冊)項目環(huán)境影響報告表
- 充電樁工程施工組織設(shè)計施工組織
評論
0/150
提交評論