Windows编程课程设计文档

Windows编程课程设计文档

ID:41032618

大小:175.00 KB

页数:9页

时间:2019-08-14

Windows编程课程设计文档_第1页
Windows编程课程设计文档_第2页
Windows编程课程设计文档_第3页
Windows编程课程设计文档_第4页
Windows编程课程设计文档_第5页
资源描述:

《Windows编程课程设计文档》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、桂林理工大学Windows编程课程设计题目:MFC网络聊天室2010年11月14日一、需求分析1.1功能描述本项目是一个基于多线程网络聊天室,主要实现一般的聊天功能,就是不同用户之间的信息收发。软件主要实现原理是采用UDP(面向无连接)协议,服务器和客户端运行在同一个软件上,既软件本身既是服务器,也是客户端。在不同计算机上运行本程序,任意两台运行本软件的计算机就可以实现相互通信,实现信息的转发。本软件主要实现功能有两点:1.实现服务器端秘客户端之间的通信。2.显示系统时间。1.1运行环境在Visualstudio6.0 WindowsOS平台1.2开发工具Vi

2、sualstudio6.0 MFC1.4MFC的消息实现机制 在MFC的框架结构下,可以进行消息处理的类的头文件里面都会含有DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息处理函数的声明。可以进行消息处理的类的实现文件里一般都含有如下的结构。BEGIN_MESSAGE_MAP(CInheritClass,CBaseClass)    //{{AFX_MSG_MAP(CInheritClass)    //}}AFX_MSG_MAP    END_MESSAGE_MAP()这里主要进行消息映射的实现和消息处理函数的实现。所有能够进行消息处

3、理的类都是基于CCmdTarget类的,也就是说CCmdTarget类是所有可以进行消息处理类的父类。CCmdTarget类是MFC处理命令消息的基础和核心。一、项目设计 2.1设计原理 本项目主要采用面向无连接socket编程,实现原理如图1-1。图1-12.2主要功能设计  本项目主要实现在的功能为运行本程序的任意两台计算机之间的消息通信,可以自由的发送和接收信息。所以主要设计就是实现信息的发送和接收。最终实现效果图如图1-2。图1-22.3流程图创建套接字是否成功初始化套接字启动    是退出消息       发送    接收2.3设计步骤2.3.1界面

4、设计本聊天程序实现工具为VisualC++6.0MFC,主要利用其中用于网络编程的Socket类实现网络通讯功能。程序只有一部分,其控件主要包括3个编缉框(IDC_EDIT_RECV、IDC_EDIT_SEND、IDC_EDIT_TIME)、两个静态文本框(IDC_STATIC_IP、IDC_STATIC_TIME)、两个组合框(IDC_STATIC_RECV、IDC_STATIC_SEND)、一个IP地址(IDC_IPADDRESS)、两个按钮(IDC_SEND、IDC_CANCEL)。其最终界面如图1-3。图1-32.3.2功能设计 ⑴在CChatudpA

5、pp::InitInstance()应用程序内调用AfxSocketInit()对套接字进行初始化      BOOLCChatudpApp::InitInstance(){//加载套接字,进行版本协商if(!AfxSocketInit()){AfxMessageBox("加载套接字失败!");returnfalse;} ②在CChatudpDlg类添加InitSocket()来创建套接字BOOLCChatudpDlg::InitSocket(){//创建一个基于数据报的套接字m_socket=socket(AF_INET,SOCK_DGRAM,0);if(I

6、NVALID_SOCKET==m_socket){MessageBox("初始化套接字失败!");returnFALSE;}//定义Socket编程里用到的结构体,用sockaddr_in结构指定IP地址和端口信息SOCKADDR_INaddrsock;addrsock.sin_family=AF_INET;addrsock.sin_port=htons(5000);addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);/*绑定套接字*/intretval;retval=bind(m_socket,(SOCKADDR*

7、)&addrsock,sizeof(addrsock));if(SOCKET_ERROR==retval){closesocket(m_socket);MessageBox("绑定失败!");returnfalse;}returnTRUE;}⑶在CChatudpDlg::OnInitDialog()添加如下代码,用来为每个socket创建相对应的处理线程函数。//定义一个计时器,每秒更新一次SetTimer(0,1000,NULL);//调用初始化套接字函数,并创建套接字InitSocket();//新建结构体变量RECVPARAM*pRecvparam=ne

8、wRECVPARAM;//初始化变量p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。