




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 摘 绪 选题意 开发语言及开发环 VisualC++6.0简 win32编程概述及其优缺 TCP/IP协议简 Socket套接字简 需求分 开发思 系统设计与具体实 系统验收测 安装测 总 致 参考文 附件 聊天工具,即即时通信工具(IMInternetC/SP2P聊天工具,即即时通信工具(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已成为专业软件开发者进行软件开发的第一选择工具。虽然微软公司推出了C++.NET(VisualC++7.0),VisualC++6.02.2C++C++(程序设计语言C种集面向对象编程、泛型编程和过程化编程于一体的编程语言[1]C++C种实用丰富的库加入标准中,C++1998年国际标准组织(ISO)第一次颁布了C++程序设计语言的国际标准14882:1998C++ANSIC++C++98种实用丰富的库加入标准中,C++1998年国际标准组织(ISO)第一次颁布了C++程序设计语言的国际标准14882:1998C++ANSIC++C++985[2]C++C++11;相对应的当下最流行的编译器版本是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致的相对较大的内存开销。MFCWindowsMFCDLLMFCDLLMFCMFCDLL单、快捷。MFCVisualCMFC,helloworldMFCMFCMFCMFCSOCKETVisualC+MFCMFC2.4TCP/IP输控制协议)IP(网际协议OSITCP输控制协议)IP(网际协议OSITCPTCP(IP6)以确保数据完整性,无损的按顺序到达。TCPUDPUDPTCPUDPDNSsocket(SOCKET_DGRAM),UDP8UDP2.5P2PP2P(PeertoPeer),p2p2.6Socket2.6SocketMFCWindowssocket类:MFC对windows提供的socket类进行了封装,作为CAsyncSocketCSocketCSocket类是CAsyncSocketCAsyncSocket的APISocket(SOCK_DGRAMSocketconnect()accept()Socketconnect()accept()enumINVALID//上线//下线//回发//单聊//群聊//请求发送文件//同意接收文件//服务端停止传输文件//接收端停止传输文件//正在传输文件//可以传输文件的下一段enumINVALID//上线//下线//回发//单聊//群聊//请求发送文件//同意接收文件//服务端停止传输文件//接收端停止传输文件//正在传输文件//可以传输文件的下一段typedefstruct}USERINFO,主面板的用户列表structtagUSERINFO4-1tagUSERINFOIPtypedefstructstructtagFILEHEAD4-2tagFILEHEAD创建了一个数据结构tagFILEDATA,typedefstruct4-1tagUSERINFOIPtypedefstructstructtagFILEHEAD4-2tagFILEHEAD创建了一个数据结构tagFILEDATA,typedefstructstructtagFILEDATA表4-3tagFILEDATA数据状态,只能取值FILE_MOVE,传输文件长度,每次4K,能不足单次传输文件大小,每次传输个信息,因此创建了一个用户上下线标识数据结构tagONLINE,typedefstructstructtagFILEDATA表4-3tagFILEDATA数据状态,只能取值FILE_MOVE,传输文件长度,每次4K,能不足单次传输文件大小,每次传输个信息,因此创建了一个用户上下线标识数据结构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默认读取本机的IP和主机名,此处的IP是不能进行修改的,是通过设置“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机人数,点击“刷新”按钮,调用CMiniQQ2014Dlg::OnBtnRefurbish()函数即可从m_ptrArray(用于保存用户信息的容器)建了线程,让它在局域网内获取所有开机用户的IP。同时创建了UDP聊天套接字建了线程,让它在局域网内获取所有开机用户的IP。同时创建了UDP聊天套接字4-3可调用CChatOneDlg::OnBtnClear()void可调用CChatOneDlg::OnBtnClear()voidCHATMSGCStringif(sSend.GetLength()>this->MessageBox("发送内容太长,请分段发送.");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,同时将输入框中的内容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-此时“发送文件”处于高亮状态,表示目前显示的是Tab1件窗口中将用户选择发送的文件信息“0%在路径)写入Tab1发送文件清单中,同时通过m_pSocketChat->SendTo()文件的信息发送给指定IPm_listSend.DeleteItem(nItem)4-7件窗口中将用户选择发送的文件信息“0%在路径)写入Tab1发送文件清单中,同时通过m_pSocketChat->SendTo()文件的信息发送给指定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根据静态变量图4-103根据静态变量Temp判断皮肤及void(LPSTR)IDR_SKIN3,"SKIN")当我们点击换肤按钮时,通过加载资源中的.smf4.3.6图4-11(1)当我们点击换肤按钮时,通过加载资源中的.smf4.3.6图4-11(1)(2)(3)表5-1在登录界面输入昵称后发送消息给指定好发送群消点击主界面的“进入群发送文件显示窗口显示文接收文件窗口显示文件名点击主界面的“更改皮表5-1在登录界面输入昵称后发送消息给指定好发送群消点击主界面的“进入群发送文件显示窗口显示文接收文件窗口显示文件名点击
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司组织冲刺活动方案
- 公司生日座谈会策划方案
- 公司文体协会活动方案
- 2025年现代财务管理考试试题及答案
- 2025年生物医学工程基础知识与技术应用考试试卷及答案
- 2025年审判与执行实务考试试卷及答案
- 2025年科学传播与社会认知的能力测试考试卷及答案
- 2025年临床医学专业执业医师考试试卷及答案
- 沪教版(五四学制)(2024)六年级下册英语期末复习Units1-2知识清单
- 2025年翻译专业技术资格考试题及答案
- 第19章一次函数-一次函数专题数形结合一一次函数与45°角模型讲义人教版数学八年级下册
- 2023年四川省宜宾市叙州区数学六年级第二学期期末考试模拟试题含解析
- 幼儿园警察职业介绍课件
- 棉印染清洁生产审核报告
- 灭火器维修与报废规程
- 皮肤病的临床取材及送检指南-修订版
- 机型理论-4c172实用类重量平衡
- 校企合作项目立项申请表(模板)
- 管道工厂化预制推广应用课件
- 海水的淡化精品课件
- 项目工程移交生产验收报告
评论
0/150
提交评论