freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于winsock的網(wǎng)絡(luò)聊天軟件設(shè)計(jì)-資料下載頁(yè)

2025-08-11 12:17本頁(yè)面
  

【正文】 息發(fā)送來(lái)時(shí),自動(dòng)會(huì)響應(yīng)的函數(shù)。要獲取發(fā)來(lái)的信息內(nèi)容,需要調(diào)用Receive函數(shù)。根據(jù)接收到的內(nèi)容,判斷這次要進(jìn)行什么處理,是剛登錄聊天室還是其它聊友信息發(fā)送,如果是剛登錄聊天室,那么需要顯示誰(shuí)剛登錄聊天室的信息;否則向所有在線的其它聊友發(fā)送說(shuō)話內(nèi)容。對(duì)后面的消息群發(fā)代碼部分,要運(yùn)行此部分代碼是首先需要判斷消息類型的,只有類型是SEND_MESSAGE的消息才會(huì)執(zhí)行后面的代碼。通過遍歷用戶套接字鏈表,將用戶發(fā)送來(lái)的消息發(fā)送給在線列表的每一個(gè)用戶。在部分代碼中,使用到了Receive和Send函數(shù),在調(diào)用了這個(gè)兩個(gè)函數(shù)的過程,也使用了其中的一些參數(shù)。 客戶端:開始創(chuàng)建套接字連接服務(wù)器操作填寫用戶信息,并提交在編輯框內(nèi)顯示消息內(nèi)容等待消息提示申請(qǐng)成功發(fā)送LOGIN_IO和PASS_SUCCESS等待消息進(jìn)入聊天主窗口,更新窗口信息接收消息單擊“退出”向服務(wù)器發(fā)送CHAT_CLOSE消息結(jié)束同意?進(jìn)入私聊窗口進(jìn)行私聊的消息循環(huán)(類似主窗口)雙擊某個(gè)用戶請(qǐng)求與其私聊對(duì)方反應(yīng)進(jìn)入私聊窗口進(jìn)行私聊的消息循環(huán)(類似主窗口)發(fā)送ASK_NUM申請(qǐng)帳號(hào)登陸ASK_NUMASKNUM_FAILEDPASS_FAILEDPASS_SUCCESSSEND_MESSAGESPRIVATE_ASK拒絕同意拒絕同意對(duì)于客戶端的源代碼,由于此處篇幅有限,不能對(duì)全部代碼進(jìn)行分析,所以我僅僅對(duì)服務(wù)器端的群聊代碼進(jìn)行講解分析??蛻舳?void CMyChatDlg::OnSend() { //響應(yīng)“發(fā)送”按鈕,發(fā)送用戶編輯的聊天信息 UpdateData()。 if(m_strMessage == ) //為空時(shí)要求用戶重新輸入消息 { AfxMessageBox(不能發(fā)送空消息!)。 CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_MESSAGE)。 pEditSetFocus()。 return。 } //初始化消息結(jié)構(gòu)體為SEND_MESSAGE消息 Header head。 = SEND_MESSAGE。 = ()。 CTime time = CTime::GetCurrentTime()。 CString t = (%H:%M:%S)。 CString nikeName = 。 //編輯出完整的消息字符串str CString str = nikeName + + t + \r\n + +m_strMessage。 m_pSocketSend((char *)amp。head,sizeof(Header))。 /發(fā)送消息到服務(wù)器 if(m_pSocketSend((LPCTSTR)str, ())){ m_strMessage = 。 //判斷是否發(fā)送成功 UpdateData(FALSE)。 CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_MESSAGE)。 pEditSetFocus()。 } else { //錯(cuò)誤提示 AfxMessageBox(網(wǎng)絡(luò)傳輸錯(cuò)誤!)。 }}void CClientSocket::OnReceive(int nErrorCode) { //重載函數(shù)(在本地套接字接收到消息時(shí)自動(dòng)調(diào)用它進(jìn)行消息處理) //監(jiān)聽接收消息 char buff[sizeof(Header)]。 memset(buff,0,sizeof(buff))。 Receive(buff,sizeof(buff))。 Header *header = (Header*)buff。 int length = headerlen。 char type = headertype。 //判斷消息類型并分別予以響應(yīng)if(type == SEND_MESSAGE) { //調(diào)用顯示消息函數(shù) chatDlgGetMessage()。 }}BOOL CMyChatDlg::GetMessage(){ char buff[1000]。 memset(buff,0,sizeof(buff))。 m_pSocketReceive(buff, sizeof(buff),0)。 //接收消息 CString strTemp = buff。 strTemp += _T(\r\n)。 (strTemp)。 //將消息內(nèi)容顯示在編輯框內(nèi) return TRUE。}對(duì)于客戶端的群聊源代碼,我們可以分為OnSend()和OnReceive,其中OnReceive跟前面服務(wù)器端的功能是大同小異,這里我就不做多余的闡述。眾所周知在聊天軟件的客戶端會(huì)有一個(gè)發(fā)送消息的按鈕,而這個(gè)按鈕在代碼中的體現(xiàn)就是OnSend()。對(duì)于Onsend()首先當(dāng)然是要判斷用戶所要發(fā)送的信息是否為空,如果為空就會(huì)通過AfxMessageBox函數(shù)產(chǎn)生一個(gè)窗口,提示“不能發(fā)送空消息!”。如果不為空,就會(huì)初始化消息結(jié)構(gòu)體為SEND_MESSAGE消息,再編輯出完整的字符串信息,顯示在客戶端的聊天端口上,并將這個(gè)完整的信息發(fā)送給服務(wù)器,同時(shí)判斷消息是否發(fā)送成功,如果發(fā)送不成功,就會(huì)通過AfxMessageBox函數(shù)產(chǎn)生一個(gè)窗口,提示“網(wǎng)絡(luò)傳輸錯(cuò)誤!”。 第四章 測(cè)試測(cè)試的目的是為了發(fā)現(xiàn)功能是否達(dá)到,或者是否有更多的缺陷!這里的缺陷是泛稱的,它可以指功能的錯(cuò)誤,也可以指性能低下,易用性差等等。測(cè)試總是先假設(shè)程序中存在缺陷,再通過執(zhí)行程序來(lái)發(fā)現(xiàn)并最終改正缺陷。理解測(cè)試的目的是個(gè)很重要的意識(shí)問題。如果說(shuō)測(cè)試的目的是為了說(shuō)明程序中沒有缺陷,那么測(cè)試人員就會(huì)向這個(gè)目標(biāo)靠攏,因而下意識(shí)地選用一些不易暴露錯(cuò)誤的測(cè)試示例。這樣的測(cè)試是虛假的。測(cè)試只能證明缺陷存在,而不能證明缺陷不存在。 這個(gè)真理告訴我們,對(duì)于一個(gè)復(fù)雜的系統(tǒng)而言,無(wú)論采取什么樣的測(cè)試手段都不能證明缺陷已經(jīng)不復(fù)存在。“徹底地測(cè)試”只是一種理想。在實(shí)踐中,測(cè)試要考慮時(shí)間、費(fèi)用等限制,不允許無(wú)休止地測(cè)試。 測(cè)試有助于提高軟件的質(zhì)量,但是提高軟件的質(zhì)量不能依賴于測(cè)試。關(guān)于測(cè)試人員的安排,由本人做白盒測(cè)試,由同學(xué)幫助做黑盒測(cè)試。第一節(jié) 白盒測(cè)試測(cè)試環(huán)境配置白盒測(cè)試可在開發(fā)系統(tǒng)的本機(jī)上直接進(jìn)行,所以不需要進(jìn)行特殊的配置。正確性測(cè)試正確性測(cè)試又稱功能測(cè)試,它檢查軟件的功能是否符合規(guī)格說(shuō)明。由于正確性是軟件最重要的質(zhì)量因素,所以其測(cè)試也最重要。通過在程序的各個(gè)流程中插入斷點(diǎn)進(jìn)行單步跟蹤發(fā)現(xiàn),程序中各個(gè)模塊皆可進(jìn)行正常運(yùn)行,數(shù)據(jù)也未發(fā)生異常現(xiàn)象。第二節(jié) 黑盒測(cè)試測(cè)試環(huán)境配置用二臺(tái)機(jī)器通過集線器構(gòu)成一個(gè)局域網(wǎng),進(jìn)行正確的網(wǎng)絡(luò)配置,三臺(tái)機(jī)器上都安裝了WINDOWS操作系統(tǒng),并安裝了本軟件的正確拷貝。功能性測(cè)試先在其中一臺(tái)機(jī)器A上啟動(dòng)本軟件,掃描可以發(fā)現(xiàn)另一臺(tái)開機(jī)的B機(jī)器,但是因?yàn)锽機(jī)器上的本軟件尚未啟動(dòng),所以顯示為不可聊天。當(dāng)B機(jī)器啟動(dòng)了本軟件后,它的掃描過程就不僅發(fā)現(xiàn)了A機(jī)是開機(jī)狀態(tài),而且檢測(cè)到A機(jī)是可以聊天的。另外,A機(jī)立即也發(fā)現(xiàn)了B機(jī)的上線行為,并向用戶發(fā)出了提示,然后此時(shí),不管A,B雙方,只要雙擊用戶列表中相應(yīng)的項(xiàng)目,即可啟動(dòng)發(fā)信對(duì)話框,進(jìn)行信息的輸入與發(fā)送,同時(shí),對(duì)方均可進(jìn)行正確的接收和回復(fù)。所以,功能測(cè)試為成功。容錯(cuò)性測(cè)試容錯(cuò)性測(cè)試是檢查軟件在異常條件下的行為。容錯(cuò)性好的軟件能確保系統(tǒng)不發(fā)生無(wú)法意料的事故。 經(jīng)檢查,當(dāng)用戶輸入無(wú)效操作時(shí),系統(tǒng)總是能檢測(cè)到無(wú)效操作,對(duì)用戶進(jìn)行相應(yīng)的信息反饋,并合理的做出內(nèi)部處理。當(dāng)系統(tǒng)本身發(fā)生錯(cuò)誤,比如網(wǎng)絡(luò)初始化失敗,綁定套接字失敗,數(shù)據(jù)讀取失敗等,都會(huì)進(jìn)行相對(duì)應(yīng)的正確處理。性能與效率測(cè)試關(guān)于性能的問題,只有在程序啟動(dòng)的時(shí)候,掃描網(wǎng)絡(luò)需要占用較多的系統(tǒng)資源和時(shí)間。至于聊天信息的發(fā)送和接收,在局域網(wǎng)內(nèi)幾乎就是瞬間響應(yīng),效率完全滿足用戶要求。易用性測(cè)試易用性測(cè)試沒有一個(gè)量化的指標(biāo),主觀性較強(qiáng)。一般認(rèn)為,如果一個(gè)系統(tǒng)可以讓用戶不查閱手冊(cè)即可正確使用其所有功能,那么這個(gè)系統(tǒng)就具有良好的易用性。本程序即可做到使以前從未使用過的用戶完全正確使用,所以具有比較好的易用性。 結(jié) 論在當(dāng)今電腦網(wǎng)絡(luò)密布的世界當(dāng)中,一個(gè)簡(jiǎn)單高效的局域網(wǎng)通信工具是如此的具有實(shí)用性,所以我們應(yīng)當(dāng)重視對(duì)它的相關(guān)研究與開發(fā)。在這次的畢業(yè)設(shè)計(jì)中,我應(yīng)用了VC++,在這一重要的領(lǐng)域進(jìn)行了相關(guān)的實(shí)踐,不管是對(duì)我的研究能力,還是實(shí)際動(dòng)手能力,還是資料查閱能力,都起了相當(dāng)大的益處。所以,我決定認(rèn)真總結(jié)這次畢業(yè)設(shè)計(jì)的經(jīng)驗(yàn),以及學(xué)習(xí)到的知識(shí),來(lái)更加的充實(shí)自己的頭腦和完善自己的知識(shí)結(jié)構(gòu)。從這次設(shè)計(jì)中,我充分認(rèn)識(shí)到了VC++的高效的開發(fā)能力,以及WINDOWS平臺(tái)一如既往的易用性。它的那些完善的編程接口,的確大大方便了開發(fā)人員的工作,當(dāng)然也使得它這個(gè)系統(tǒng)本身的推廣更加的簡(jiǎn)單。另外,我也在這次設(shè)計(jì)中看到了自己的許多不足之處,比如當(dāng)系統(tǒng)編寫碰到困境的時(shí)候,我想過要?jiǎng)h減系統(tǒng)的功能,以便系統(tǒng)的得以完成,但是我終于克服了這些懦弱的想法,最終按預(yù)想的結(jié)果完成了整個(gè)系統(tǒng)。我的知識(shí)結(jié)構(gòu)也不是足夠的充分,尤其是軟件工程部分的知識(shí),因?yàn)闆]有做真正的工業(yè)化的系統(tǒng)設(shè)計(jì),甚至連畢業(yè)設(shè)計(jì)這樣的系統(tǒng)都沒有做過,所以很多步驟都是自己臨時(shí)學(xué)習(xí),大大影響了系統(tǒng)的開發(fā)進(jìn)度。既然設(shè)計(jì)已經(jīng)完成,論文也寫到結(jié)論的地方,我希望自己能以一個(gè)良好的心態(tài)順利畢業(yè),走向社會(huì)。 參考文獻(xiàn)[1] (第5版)[M]. 電子工業(yè)出版社,2007年.[2] 汪曉平,[M].人民郵電出版社,[3] [M].[4] Brain , Dennis C Programming Language[M].[5] [J].揚(yáng)州職業(yè)大學(xué)學(xué)報(bào),2008(2).[6] James Networking –A TopDown Featuring the Internet[M]..[7] C++程序設(shè)計(jì)基礎(chǔ)教程[M].清華大學(xué)出版社,[8] Bjarne C++ Programming Languge[M].[9] Charles [M].[10] Anthony Ohlund,Windows 網(wǎng)絡(luò)編程[M].清華大學(xué)出版社,[11] 汪曉平,[M].人民郵電出版社,[12] [J].西安聯(lián)合大學(xué)學(xué)報(bào),2002(4).[13] [M].[14] [M].[15] [J].南京曉莊學(xué)院學(xué)報(bào),2001(4).
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1