




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
編號:數(shù)學(xué)與計(jì)算科學(xué)學(xué)院創(chuàng)新性實(shí)驗(yàn)結(jié)題報(bào)告書實(shí)驗(yàn)題目:單張照片人臉檢測實(shí)驗(yàn)成績(教師填寫):學(xué)院:數(shù)學(xué)與計(jì)算科學(xué)學(xué)院專業(yè):信息與計(jì)算科學(xué)學(xué)生姓名:韓尚穎1200710218小組成員:覃啟霞1200710211指導(dǎo)教師: 丁勇教授2013年04月08日摘要:Winsock是Windows下的網(wǎng)絡(luò)編程接口,是一個(gè)基于Socket模型的API。簡單分析了Winsock的結(jié)構(gòu)及利用Winsock實(shí)現(xiàn)計(jì)算機(jī)數(shù)據(jù)傳輸服務(wù)的機(jī)制,給出了一種基于Winsock和TCP/IP協(xié)議的局域網(wǎng)多人聊天系統(tǒng)的設(shè)計(jì)方法,并用VC加以實(shí)現(xiàn)。關(guān)鍵詞:Winsock;聊天程序;客戶端;服務(wù)器一、實(shí)驗(yàn)?zāi)康募爸饕獎(jiǎng)?chuàng)新性點(diǎn):1,網(wǎng)絡(luò)聊天在當(dāng)今已經(jīng)不算新鮮事物,但大多數(shù)網(wǎng)絡(luò)聊天都需要借助于Internet的服務(wù)器,這就給那些具有大規(guī)模內(nèi)部網(wǎng)絡(luò)的用戶造成了不便,出于安全等考慮,通常這些內(nèi)部網(wǎng)絡(luò)不能直接連接到Internet?;赪insock的局域網(wǎng)聊天室可以方便地解決這一問題,特別適用于公司內(nèi)部網(wǎng)絡(luò)和學(xué)校內(nèi)部網(wǎng)絡(luò)。目前,此類程序多基于Java和VC++開發(fā),但過程相對繁瑣,本文所提供的方法主要基于Windows下的API)Winsock(WindowsSockets)實(shí)現(xiàn),該接口可支持TCP/IP協(xié)議和UDP協(xié)議,不僅操作簡單,效果也較好。2Winsock的結(jié)構(gòu)及通信機(jī)制Socket(套接字)最初是由加利福尼亞大學(xué)Berkeley(伯克利)分校為UNIX操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口,隨著UNIX的廣泛使用,Socket成為最流行的網(wǎng)絡(luò)通信應(yīng)用程序接口之一。程序員可以使用該接口進(jìn)行編程,從而實(shí)現(xiàn)網(wǎng)絡(luò)會(huì)話。Socket接口的處理過程是/打開)讀)寫)關(guān)閉0。即為了實(shí)現(xiàn)網(wǎng)絡(luò)通信,程序首先需要進(jìn)行一個(gè)網(wǎng)絡(luò)連接,然后才可以讀寫數(shù)據(jù),不用時(shí)必須關(guān)閉該連接。隨著Windows的廣泛使用,為了降低Windows環(huán)境下通信軟件的開發(fā)難度,提供類似于Unix系統(tǒng)中的網(wǎng)絡(luò)編程界面,WinSock應(yīng)運(yùn)而生。Winsock(WindowsSockets)是Windows下的網(wǎng)絡(luò)編程接口,它是一個(gè)基于Socket模型的API,WindowsAPI只有在MicrosoftWindows操作系統(tǒng)類中使用。Winsock是以動(dòng)態(tài)鏈接庫(DLL)來實(shí)現(xiàn)Socket接口的。利用Winsock進(jìn)行網(wǎng)絡(luò)通信主要依賴于Windows內(nèi)部的消息傳送機(jī)制,使用相關(guān)函數(shù)初始化、建立、配置和使用Socket。即應(yīng)用程序通過調(diào)用Winsock的API實(shí)現(xiàn)相互間的通信。Winsock又可利用下層的網(wǎng)絡(luò)通信協(xié)議及操作系統(tǒng)調(diào)用實(shí)際的通信功能,從而實(shí)現(xiàn)網(wǎng)絡(luò)通信。利用Winsock可以與遠(yuǎn)程計(jì)算機(jī)建立連接,并通過網(wǎng)絡(luò)通信協(xié)議進(jìn)行數(shù)據(jù)交換。3程序的設(shè)計(jì)與實(shí)現(xiàn)基于WinSock的聊天程序?qū)崿F(xiàn)的關(guān)鍵就在于對Socket讀寫動(dòng)作的控制.當(dāng)用戶發(fā)送信息時(shí)將數(shù)據(jù)寫到Socket,當(dāng)對方有數(shù)據(jù)到達(dá)時(shí),從Socket讀出并顯示給用戶。二、實(shí)驗(yàn)要求:掌握socket網(wǎng)絡(luò)編程的設(shè)計(jì)與應(yīng)用;熟悉怎么使用WindowsAPI函數(shù)設(shè)計(jì)窗口界面,實(shí)現(xiàn)聊天功能;了解WindowsAPI編程的方法與技能的;知道如何調(diào)用API函數(shù)及各種API函數(shù)的函數(shù)功能;三、實(shí)驗(yàn)原理:使用socketsSocket控件讓你建立一個(gè)利用TCP/IP和有關(guān)的協(xié)議與其他系統(tǒng)進(jìn)行通信的應(yīng)用。使用Sockets,你能夠讀和寫通過它連接的其他機(jī)器,而不用擔(dān)心實(shí)際的網(wǎng)絡(luò)軟件的相關(guān)細(xì)節(jié)。Sockets提供基于TCP/IP協(xié)議的連接。除此以外還能很好的工作,在其他相關(guān)的協(xié)議,例如XeroxNetworkSystem(XNS),Digital’sDECnet,orNovell’sIPX/SPX家族。C++Builder提供你寫網(wǎng)絡(luò)服務(wù)器或客戶應(yīng)用程序去讀和寫其他的系統(tǒng)。一個(gè)服務(wù)或客戶程序通常專注于一個(gè)單一的服務(wù)如超文本傳送協(xié)議(HTTP)或文件傳輸協(xié)議(FTP)。使用serversockets,一個(gè)應(yīng)用程序可以提供這些服務(wù)中的一個(gè)去連接一個(gè)希望使用服務(wù)的客戶程序。Clientsockets允許一個(gè)應(yīng)用使用這些服務(wù)中的一個(gè)去連接提供這個(gè)服務(wù)的服務(wù)應(yīng)用。四、實(shí)驗(yàn)內(nèi)容與步驟:1、創(chuàng)建對話框工程;2、設(shè)計(jì)對話框樣式和功能按鈕;3、編寫對話框初始界面,主要是實(shí)現(xiàn)“網(wǎng)絡(luò)設(shè)置”按鈕功能4、編寫創(chuàng)建socket套接字;5、編寫B(tài)OOLSOCKET_Select(SOCKEThSocket,intnTimeOut,BOOLbRead)函數(shù)(注:選擇(select)模型是Winsock中最常見的I/O模型。核心便是利用select函數(shù),實(shí)現(xiàn)對I/O的管理!利用select函數(shù)來判斷某Socket上是否有數(shù)據(jù)可讀,或者能否向一個(gè)套接字寫入數(shù)據(jù),防止程序在Socket處于阻塞模式中時(shí),在一次I/O調(diào)用(如send或recv、accept等)過程中,被迫進(jìn)入“鎖定”狀態(tài);同時(shí)防止在套接字處于非阻塞模式中時(shí),產(chǎn)生WSAEWOULDBLOCK錯(cuò)誤)功能為:假定我們想知道是否可從一個(gè)套接字中安全地讀取數(shù)據(jù),同時(shí)不會(huì)陷于無休止的“鎖定”狀態(tài),便可使用FDSET宏,將自己的套接字分配給fdread集合,再來調(diào)用select。要想檢測自己的套接字是否仍屬fdread集合的一部分,可使用FD_ISSET宏。采用下述步驟,便可完成用select操作一個(gè)或多個(gè)套接字句柄的全過程:1)使用FDZERO宏,初始化一個(gè)fdset對象;2)使用FDSET宏,將套接字句柄加入到fdset集合中;3)調(diào)用select函數(shù),等待其返回……select完成后,會(huì)返回在所有fdset集合中設(shè)置的套接字句柄總數(shù),并對每個(gè)集合進(jìn)行相應(yīng)的更新。4)根據(jù)select的返回值和FDISSET宏,對fdset集合進(jìn)行檢查。5)知道了每個(gè)集合中“待決”的I/O操作之后,對I/O進(jìn)行處理,然后返回步驟1),繼續(xù)進(jìn)行select處理;5、編寫服務(wù)器端線程代碼;6、編寫客戶端連接代碼;7、編寫“單選按鈕”功能函數(shù)8、編寫“結(jié)束”線程函數(shù);9、處理一些瑣碎的問題。五、實(shí)驗(yàn)過程原始記錄(數(shù)據(jù),圖表,計(jì)算等):六,實(shí)驗(yàn)結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公用品銷售折扣及定制服務(wù)合同
- 二零二五年度燃料研發(fā)與專利許可合同
- 二零二五年度股權(quán)代持合同:包含企業(yè)資產(chǎn)重組的綜合性協(xié)議
- 2025年度環(huán)保設(shè)施勞務(wù)分包安全責(zé)任協(xié)議
- 二零二五年度頂管施工安全教育與應(yīng)急預(yù)案制定合同
- 二零二五年度合資企業(yè)股份代持與清算協(xié)議
- 二零二五年度特色餐飲服務(wù)人員勞動(dòng)合同范本
- 二零二五年度地質(zhì)鉆孔施工環(huán)境保護(hù)協(xié)議
- 二零二五年度集體勞動(dòng)合同在民營企業(yè)中的創(chuàng)新
- 二零二五年度企業(yè)產(chǎn)品售后服務(wù)宣傳片委托協(xié)議
- 建筑行業(yè)材料供應(yīng)應(yīng)急預(yù)案
- 電焊工安全培訓(xùn)(超詳)課件
- 機(jī)械加工企業(yè)安全生產(chǎn)應(yīng)急預(yù)案(6篇)
- GB/T 23025-2024信息化和工業(yè)化融合管理體系生產(chǎn)設(shè)備運(yùn)行管控信息模型分類與應(yīng)用指南
- 2025年上半年安徽合肥高新區(qū)管委會(huì)招聘工作人員筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 學(xué)校食堂廚師崗位職責(zé)
- 職業(yè)生涯規(guī)劃的步驟與方法課件
- 2024解析:第十五章電流和電路-講核心(解析版)
- 米勒黑曼策略銷售培訓(xùn)
- 2024年下半年東方電氣長三角(杭州)創(chuàng)新研究院限公司第二批招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 【重點(diǎn)易錯(cuò)題每日一練小紙條】二年級數(shù)學(xué)下冊
評論
0/150
提交評論