版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)東南大學自動化學院實 驗 報 告課程名稱: 信息通信網(wǎng)絡概論 第 三 次實驗實驗名稱: 基于客戶/服務器模式的網(wǎng)絡通信客戶端和服務器端設計 院 (系): 自動化 專 業(yè): 自動化 姓 名: 耿佳輝 學 號: 實 驗 室: 403 實驗組別: 同組人員: 實驗時間:2013年12月 16日評定成績: 審閱教師: 目 錄實驗目的和要求3二實驗原理 3三實驗方案與實驗步驟 3四實驗設備與器材配置 3五實驗記錄 3六思考題或討論題 4實驗報告內(nèi)容:實驗目的和要求1在前面兩個實驗
2、的基礎上進一步了解網(wǎng)絡編程的過程。2掌握Windows環(huán)境下基于WinSock的編程方法和通訊實現(xiàn)。3編寫一個聊天程序,即以客戶端和服務器的模式進行互發(fā)消息。 利用客戶端和服務器模式,編寫一個點對點的,可以相互發(fā)送和接收消息的程序,也就是常說的聊天工具。該工具具有既可以作為服務器也可以做為客戶端使用。 當作為服務器時,能輸入IP值和端口值,并能進行在線偵聽,能接受連接請求,并實現(xiàn)消息互發(fā)。 當作為客戶端時,能輸入服務器的IP值和端口值,并進行連接請求,能與服務器進行互發(fā)消息,聊天結(jié)束后還要實現(xiàn)與服務器的斷開的功能。實驗原理實驗方案與實驗步驟使用的函數(shù) 服務器端: 建立Socket:調(diào)用 成員函
3、數(shù)Socket()函數(shù) 綁定端口:調(diào)用成員函數(shù)bind()函數(shù) (注:對于MFC編程我們只要調(diào)用Create()函數(shù)就可以包括上面的兩個函數(shù)) 監(jiān)聽:調(diào)用成員函數(shù)listen()函數(shù) CMySocket m_sConnectSocket;CMySocket m_sListenSocket;/是客戶機還是服務器if(m_cmbType.GetCurSel()=1)/是服務器/創(chuàng)建于設置端口綁定的套接字m_sListenSocket.Create(m_nServPort);/開始偵聽m_sListenSocket.Listen(); else/是客戶機/創(chuàng)建一個默認的套接字m_sConnectSo
4、cket.Create();/發(fā)出連接請求m_sConnectSocket.Connect(m_strServName,m_nServPort); 監(jiān)聽:調(diào)用成員函數(shù)listen()函數(shù) 服務器端接受客戶端的連接請求:調(diào)用成員函數(shù)accept() 函數(shù) /對于服務器void CgengjiahuiDlg:OnAccept()/對于服務器/接受連接請求m_sListenSocket.Accept(m_sConnectSocket);/接受連接請求/ 客戶端: 建立客戶端的 Socket :調(diào)用 socket() 函數(shù) (注:我們也是調(diào)用Create()函數(shù)來完成Socket的建立的) 提出連接申
5、請 :調(diào)用成員函數(shù)connect()函數(shù)以上這些函數(shù)我們是在重載前面的虛擬函數(shù)時使用的,例如OnAccept()函數(shù)中調(diào)用accept() 函數(shù)等等。數(shù)據(jù)發(fā)送部分void CgengjiahuiDlg:OnSendMsg() int nLen;/消息長度int nSent;/已發(fā)送消息的長度/從對話框取回數(shù)據(jù)UpdateData(TRUE);/判斷要發(fā)送的消息是否為空if(!m_strMsg.IsEmpty()/獲取消息的長度nLen = m_strMsg.GetLength();/發(fā)送消息nSent = m_sConnectSocket.Send(LPCTSTR(m_strMsg),nLen
6、);/發(fā)送是否成功if(nSent!=SOCKET_ERROR)/將消息添加到“已發(fā)送列表框”m_listSent.AddString(m_strMsg);/更新對話框UpdateData(FALSE);elseAfxMessageBox(信息發(fā)送錯誤,MB_OK|MB_ICONSTOP);接收,數(shù)據(jù)段處理部分char* pBuf = new char1025;/char pBuf1025;int nBufSize = 1024;int nReceived;CString strReceived;/接收消息nReceived = m_sConnectSocket.Receive(pBuf,nB
7、ufSize); /判斷消息接收是否成功?if(nReceived!=SOCKET_ERROR)/保留接收消息的有效部分pBufnReceived = NULL;/將消息轉(zhuǎn)化為CString對象strReceived = pBuf;/將消息添加到“已接收的消息”列表框m_listReceived.AddString(strReceived);/更新對話框/UpdateData(FALSE);elseAfxMessageBox(信息接收錯誤!,MB_OK|MB_ICONSTOP); delete pBuf;實驗設備與器材配置實驗環(huán)境visual c+ 6.0 MFC實驗記錄實驗總結(jié)這個應用程序在
8、MFC WinSock編程中很有代表性,可以用于兩臺計算機之間進行字符串傳輸;創(chuàng)建思路簡單,就是利用MFC AppWizard生成程序框架,通過對CAsynSocket類增加一個指向?qū)υ捒蝾惖弥羔?,對CAsynSocket類中的一些事件處理函數(shù)進行重載,使這些套接字事件發(fā)生時,應用程序能夠自動到對話框類中尋找合適的函數(shù)執(zhí)行。這個聊天室應用程序是基于客戶服務器模型的,一個服務器只能支持一個客戶,因此它實際上是一個基于“點對點”模型的應用程序。通過這個應用程序,用戶可以在兩臺計算機之間進行字符串傳輸即可以為兩個人進行網(wǎng)上聊天提供服務,而且兩個人的傳輸?shù)淖址槐A粼诔绦虻牧斜砜蛑?,并且進行分類,分
9、為傳送和接收的字符串。思考題或討論題本次實驗所涉及的“實體”是什么?實體間通過什么方式建立協(xié)議?答:實體,可以理解為具體的設備,計算機之類的終端、路由器交換機之類的連接設備都是實體。本次實驗中實體即客戶端和服務器,是通過創(chuàng)建套接字,服務器端偵聽,客戶端發(fā)送連接請求,然后服務器和客戶端連接,即客戶端-服務器方式建立協(xié)議. TCP/IP應用服務采用客戶機/服務器工作模式,服務器端啟動守護進程,等待客戶端的請求;服務器對應客戶端的請求,派生子進程與客戶進程進行數(shù)據(jù)通信,提供服務。服務和協(xié)議的區(qū)別與聯(lián)系?本次實驗的協(xié)議過程(即客戶-服務器方式)是怎樣建立的?用哪那些服務?答:首先,協(xié)議的實現(xiàn)保證了能夠
10、向上一層提供服務,使用本層服務的實體只能看見服務而無法看見下面的協(xié)議,協(xié)議是水平的。下面的協(xié)議對上面的實體是透明的 其次,協(xié)議是“水平的”即協(xié)議是控制對等實體之間通信的規(guī)則但服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。另外,并非在一個層內(nèi)完成的全部功能都稱之為服務,服務是上下的。只有那些能夠被高一層實體看得見的功能才能被稱之為“服務”TCP/IP應用服務采用客戶機/服務器工作模式,服務器端啟動守護進程,等待客戶端的請求;服務器對應客戶端的請求,派生子進程與客戶進程進行數(shù)據(jù)通信,提供服務。(1)服務器(HostA)首先要啟動應用程序服務進程(守護進程Server),等待客戶端的請求
11、。(2)當服務進程Server接收到客戶端HostB的請求時,派生一個子進程(Child1)與HostB進行交互,實現(xiàn)數(shù)據(jù)通信,同時守護進程Server繼續(xù)等待客戶端的請求。(3)當服務進程Server接收到客戶端HostC的請求時,派生一個子進程(Child2)與HostC進行交互,實現(xiàn)數(shù)據(jù)通信,同時守護進程Server繼續(xù)等待客戶端的請求。本次實驗客戶-服務器協(xié)議主要提供發(fā)送消息和接收消息的服務。本次實驗的協(xié)議提供了什么服務?試想,用此協(xié)議還可以提供怎樣的服務?這種服務在自動化學科領域的意義是什么?(1)簡單的信息傳遞,即使用套接字處理消息的發(fā)送和接收。(2)處理文件的傳輸。傳輸都是基于文本流進行的,協(xié)議提供了接收文本流和發(fā)送文本流的服務,因此,可以進行文本傳輸。以上兩種服務,都是由程序員自定義進行的。(3)在更高一層上,該協(xié)議還可以提供很多的高端服務:對于自動化的意義:TCP/IP協(xié)議不依賴于任何特定的計算機硬件或操作系統(tǒng),提供開放的協(xié)議標準,即使不考慮Internet,TCP/IP協(xié)議也獲得了廣泛的支持。所以TCP/IP協(xié)議成為一種聯(lián)合各種硬件和軟件的實用系統(tǒng)。TCP/IP協(xié)議并不依賴于特定的網(wǎng)絡傳輸硬件,所以TCP/IP協(xié)議能夠集成各種各樣的網(wǎng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 春節(jié)詩韻賞析
- 春節(jié)餐飲消費解碼
- 無線電電報業(yè)務與特別業(yè)務
- 二零二五年度二手房買賣合同附租客安置及租金代收服務3篇
- 21世紀以來中國健康扶貧研究脈絡與展望-基于CiteSpace的可視化分析
- 二零二五年度國有企業(yè)股權(quán)轉(zhuǎn)讓與知識產(chǎn)權(quán)保護合同3篇
- Unit8 Birthdays(Period 1)(說課稿)-2023-2024學年譯林版(三起)英語五年級下冊
- 江蘇省泰州市(2024年-2025年小學六年級語文)統(tǒng)編版競賽題((上下)學期)試卷及答案
- 二零二五年度建筑工程合同變更與合同糾紛調(diào)解合同9篇
- 二零二五年度GZ事業(yè)單位合同制聘用員工勞動合同解除及補償合同2篇
- SB/T 10412-2007速凍面米食品
- 數(shù)控線切割機床的手工編程
- -油水井小修工藝技術課件
- (完整版)兒童醫(yī)學康復科疾病護理常規(guī)
- 2022閥門制造作業(yè)指導書
- 科技創(chuàng)新社團活動教案課程
- 建筑結(jié)構(gòu)加固工程施工質(zhì)量驗收規(guī)范表格
- 部編版語文六年級上冊作文總復習課件
- 無水氯化鈣MSDS資料
- 專利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
評論
0/150
提交評論