版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘 摘 緒 選題意 開發(fā)語言及開發(fā)環(huán) VisualC++6.0簡 win32編程概述及其優(yōu)缺 TCP/IP協(xié)議簡 Socket套接字簡 需求分 開發(fā)思 系統(tǒng)設(shè)計(jì)與具體實(shí) 系統(tǒng)驗(yàn)收測(cè) 安裝測(cè) 總 致 參考文 附件 聊天工具,即即時(shí)通信工具(IMInternetC/SP2P聊天工具,即即時(shí)通信工具(IMInternetC/SP2Psoftware,2.1VisualC++6.0VisualC++6.0,簡稱VC或者VC6.0,WINDOWS2.1VisualC++6.0VisualC++6.0,簡稱VC或者VC6.0,WINDOWSVisualDeveloperStudioVisualC++6.0C++Windowsenvironment,IDE已成為專業(yè)軟件開發(fā)者進(jìn)行軟件開發(fā)的第一選擇工具。雖然微軟公司推出了C++.NET(VisualC++7.0),VisualC++6.02.2C++C++(程序設(shè)計(jì)語言C種集面向?qū)ο缶幊?、泛型編程和過程化編程于一體的編程語言[1]C++C種實(shí)用豐富的庫加入標(biāo)準(zhǔn)中,C++1998年國際標(biāo)準(zhǔn)組織(ISO)第一次頒布了C++程序設(shè)計(jì)語言的國際標(biāo)準(zhǔn)14882:1998C++ANSIC++C++98種實(shí)用豐富的庫加入標(biāo)準(zhǔn)中,C++1998年國際標(biāo)準(zhǔn)組織(ISO)第一次頒布了C++程序設(shè)計(jì)語言的國際標(biāo)準(zhǔn)14882:1998C++ANSIC++C++985[2]C++C++11;相對(duì)應(yīng)的當(dāng)下最流行的編譯器版本是GCC4.8.2MicrosoftVisualStudio2013。C++1、C++C3、C++4、C++Boost,Qt,MFC,WTLC++C++C++2.3win32windows[3]while(GetMessage(&msg,NULL,0,Microsoft(MFC)是由微軟公司(類庫)CWindowsAPIVISUALC++MFCMFCMFCActiveXHTMLWindowsAPIVISUALC++MFCMFCMFCActiveXHTMLActiveXDocument致的相對(duì)較大的內(nèi)存開銷。MFCWindowsMFCDLLMFCDLLMFCMFCDLL單、快捷。MFCVisualCMFC,helloworldMFCMFCMFCMFCSOCKETVisualC+MFCMFC2.4TCP/IP輸控制協(xié)議)IP(網(wǎng)際協(xié)議OSITCP輸控制協(xié)議)IP(網(wǎng)際協(xié)議OSITCPTCP(IP6)以確保數(shù)據(jù)完整性,無損的按順序到達(dá)。TCPUDPUDPTCPUDPDNSsocket(SOCKET_DGRAM),UDP8UDP2.5P2PP2P(PeertoPeer),p2p2.6Socket2.6SocketMFCWindowssocket類:MFC對(duì)windows提供的socket類進(jìn)行了封裝,作為CAsyncSocketCSocketCSocket類是CAsyncSocketCAsyncSocket的APISocket(SOCK_DGRAMSocketconnect()accept()Socketconnect()accept()enumINVALID//上線//下線//回發(fā)//單聊//群聊//請(qǐng)求發(fā)送文件//同意接收文件//服務(wù)端停止傳輸文件//接收端停止傳輸文件//正在傳輸文件//可以傳輸文件的下一段enumINVALID//上線//下線//回發(fā)//單聊//群聊//請(qǐng)求發(fā)送文件//同意接收文件//服務(wù)端停止傳輸文件//接收端停止傳輸文件//正在傳輸文件//可以傳輸文件的下一段typedefstruct}USERINFO,主面板的用戶列表structtagUSERINFO4-1tagUSERINFOIPtypedefstructstructtagFILEHEAD4-2tagFILEHEAD創(chuàng)建了一個(gè)數(shù)據(jù)結(jié)構(gòu)tagFILEDATA,typedefstruct4-1tagUSERINFOIPtypedefstructstructtagFILEHEAD4-2tagFILEHEAD創(chuàng)建了一個(gè)數(shù)據(jù)結(jié)構(gòu)tagFILEDATA,typedefstructstructtagFILEDATA表4-3tagFILEDATA數(shù)據(jù)狀態(tài),只能取值FILE_MOVE,傳輸文件長度,每次4K,能不足單次傳輸文件大小,每次傳輸個(gè)信息,因此創(chuàng)建了一個(gè)用戶上下線標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)tagONLINE,typedefstructstructtagFILEDATA表4-3tagFILEDATA數(shù)據(jù)狀態(tài),只能取值FILE_MOVE,傳輸文件長度,每次4K,能不足單次傳輸文件大小,每次傳輸個(gè)信息,因此創(chuàng)建了一個(gè)用戶上下線標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)tagONLINE,typedefstruct}ONLINE,structtagONLINE表4-tagONLINE取值LOG_IN,LOG_OUTLOG_REPLY4.3.14-1}ONLINE,structtagONLINE表4-tagONLINE取值LOG_IN,LOG_OUTLOG_REPLY4.3.14-1默認(rèn)讀取本機(jī)的IP和主機(jī)名,此處的IP是不能進(jìn)行修改的,是通過設(shè)置“EditControl”控BOOLCStringsIP=CCommon::GetThisIP();CStringsNameBOOLCStringsIP=CCommon::GetThisIP();CStringsName=CCommon::GetThisName();CStringsNickname=CCommon::GetKeyValue(sIP,sName);this->SetDlgItemText(IDC_EDIT_IP,sIP);this->SetDlgItemText(IDC_EDIT_NICKNAME,sNickname);returnFALSE;4.3.24-2機(jī)人數(shù),點(diǎn)擊“刷新”按鈕,調(diào)用CMiniQQ2014Dlg::OnBtnRefurbish()函數(shù)即可從m_ptrArray(用于保存用戶信息的容器)建了線程,讓它在局域網(wǎng)內(nèi)獲取所有開機(jī)用戶的IP。同時(shí)創(chuàng)建了UDP聊天套接字建了線程,讓它在局域網(wǎng)內(nèi)獲取所有開機(jī)用戶的IP。同時(shí)創(chuàng)建了UDP聊天套接字4-3可調(diào)用CChatOneDlg::OnBtnClear()void可調(diào)用CChatOneDlg::OnBtnClear()voidCHATMSGCStringif(sSend.GetLength()>this->MessageBox("發(fā)送內(nèi)容太長,請(qǐng)分段發(fā)送.");SetDlgItemText(IDC_EDIT_MSG,"");if(sSend.IsEmpty())return;sendBuf.nType=CHAT_ONE;strcpy(sendBuf.szMsg,sSend);intnSend=m_pSocketChat->SendTo(&sendBuf,sizeof(sendBuf),UDP_PORT,CMiniQQ2014Dlg*pParent=(CMiniQQ2014Dlg*)AfxGetMainWnd();SYSTEMTIMEtm;CStringsWhoSay;sWhoSay.Format("%s%.2d:%.2d:%.2dpParent->m_szNickName,tm.wHour,tm.wMinute,tm.wSecond);this->AddChatMsg(sWhoSay,sSend+"\r\n");sSend,同時(shí)將輸入框中的內(nèi)容sSend1024Sendto()m_pUserInfo->sIPsSend1024Sendto()m_pUserInfo->sIP4-4voidstaticBOOLbDone=FALSE;staticCRectrcLarge,rcNormal;if(!bDone)bDone=CRectrcNormal=rcLarge;rcNormal.right=CRectrcNormal=rcLarge;rcNormal.right=CRectrcList;CStringstr;if(str==">")SetWindowPos(NULL,0,0,rcLarge.Width(),rcLarge.Height(),SWP_NOMOVE);SetWindowPos(NULL,0,0,rcNormal.Width(),rcNormal.Height(),SWP_NOMOVE);rcLargercNormal4.3.44-54-4.3.44-54-此時(shí)“發(fā)送文件”處于高亮狀態(tài),表示目前顯示的是Tab1件窗口中將用戶選擇發(fā)送的文件信息“0%在路徑)寫入Tab1發(fā)送文件清單中,同時(shí)通過m_pSocketChat->SendTo()文件的信息發(fā)送給指定IPm_listSend.DeleteItem(nItem)4-7件窗口中將用戶選擇發(fā)送的文件信息“0%在路徑)寫入Tab1發(fā)送文件清單中,同時(shí)通過m_pSocketChat->SendTo()文件的信息發(fā)送給指定IPm_listSend.DeleteItem(nItem)4-7件所在路徑)Tab2“0%voidCChatOneDlg::DoClientAgreeRecvFile(FILEHEADfileHead,CStringCSendFile*pSendFile=new…4-8…4-8 SOCKET圖4-9未找到用戶列圖4-9未找到用戶列未找到圖4-103根據(jù)靜態(tài)變量圖4-103根據(jù)靜態(tài)變量Temp判斷皮膚及void(LPSTR)IDR_SKIN3,"SKIN")當(dāng)我們點(diǎn)擊換膚按鈕時(shí),通過加載資源中的.smf4.3.6圖4-11(1)當(dāng)我們點(diǎn)擊換膚按鈕時(shí),通過加載資源中的.smf4.3.6圖4-11(1)(2)(3)表5-1在登錄界面輸入昵稱后發(fā)送消息給指定好發(fā)送群消點(diǎn)擊主界面的“進(jìn)入群發(fā)送文件顯示窗口顯示文接收文件窗口顯示文件名點(diǎn)擊主界面的“更改皮表5-1在登錄界面輸入昵稱后發(fā)送消息給指定好發(fā)送群消點(diǎn)擊主界面的“進(jìn)入群發(fā)送文件顯示窗口顯示文接收文件窗口顯示文件名點(diǎn)擊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能化廠房內(nèi)墻抹灰及防水處理勞務(wù)分包合同4篇
- 2024蘇州租房合同模板:蘇州工業(yè)園區(qū)租賃市場(chǎng)規(guī)范化合同9篇
- 專業(yè)貨車駕駛員勞動(dòng)協(xié)議格式版B版
- 2024裝飾合同補(bǔ)充協(xié)議范本
- 2025年廠房租賃與產(chǎn)業(yè)協(xié)同發(fā)展合同4篇
- 2025年度茶葉包裝設(shè)計(jì)及印刷合同書范本4篇
- 二零二五年度城市綜合體BIM施工協(xié)調(diào)與監(jiān)控合同3篇
- 專業(yè)工地食堂供應(yīng)承包條款及合同(2024版)版B版
- 2025年度教育用品寄賣代理合同范本3篇
- 2025年度現(xiàn)代農(nóng)業(yè)科技示范場(chǎng)承包合作協(xié)議4篇
- 臺(tái)資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 羅盤超高清圖
- 參會(huì)嘉賓簽到表
- 機(jī)械車間員工績效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評(píng)估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對(duì)
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評(píng)論
0/150
提交評(píng)論