




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目VISUALC高级编程课程设计报告班级计算机科学与技术S111姓名邓会杰学号113469指导教师李玉海完成日期2012年6月6日目录第一章系统功能及使用说明411客户端系统的功能及使用说明412服务器端系统的使用及说明713数据库管理系统的使用及说明11第二章系统流程图1221服务器端和客户端通信设计流程图12211通信前准备工作12212收发数据13213处理通知消息1322数据库设计流程13221DBMS简介13222ODBC简介14223MFC中ODBC主要的类15224MFC与ODBC应用程序的数据交换机制16225数据库设计的主要步骤16第三章程序调试与参数测试17311文件传输问题17第四章程序2241客户端程序22411网络连接窗口程序22412文件传输窗口程序26413附加功能3042服务器端程序31421网络侦听窗口程序31422文件传输窗口程序35423数据管理窗口程序3543数据库管理程序36第五章系统总结4161总结4162系统不足42参考文献42前言本系统主要实现的功能是客户端与服务器端通信,服务器监听客户端发来的连接请求,通过SOCKET套接字,来完成客户端与服务器端之间的通信。开发本系统主要目的是熟练运用本学期学到的知识点。该系统使用的MFC编写,用到的知识点有WINDOWS的标准控件的使用、对文件的操作、注册表使用、动态链接库的使用、多线程的应用、ODBC数据库编程、网络编程等知识点。通过独立完成该系统,熟练的掌握所涉及的类及类方法的使用,把知识点融合到一起能深刻的理解了MFC各类的意义和MFC的机制。为以后进一步学习C打下了基础。第一章系统功能及使用说明11客户端系统的功能及使用说明如图上图,为客户端的登录界面,输入用户名和密码后,点击“登录”转到客户端的主界面。点击“退出”会退出系统。三次错误输入密码,系统自动退出,有效的提高了系统的安全性。如图上图,客户端的主界面,点击“建立连接”,如果服务端系统在监听,那么客户端就连接到了服务器端,连接成功后,“状态连接”会显示连接成功,“连接时长”会显示已连接了多长时间。点击“断开连接”客户端和服务器端就会断开连接,“连接状态”显示连接已断开,“连接时长”显示空。如果服务器端系统没有在监听,会提示连接失败。与服务器建立连接之后,点击“文件传输”标签,显示如图13的窗口,可以与服务器进行文件传输和聊天。在下方的文本框中输入要发送的文字,点击“发送”,消息会发送到服务器端,同时显示在上方的文本框中。点击“聊天记录”按钮,可以查看与服务器端的聊天记录,聊天记录显示在上方的文本框中。点击“删除记录”按钮,会删掉与服务器端的聊天记录。文件传输功能,点击“选择文件”,选择要发送的文件,再点击“发送文件”,文件会发送给服务器,同时提示发送成功。点击“附加功能”标签,主要实现了一个简易计算器。12服务器端系统的使用及说明上图,为服务器端的登录界面,输入用户名和密码后,点击“登录”转到服务器端的主界面。点击“退出”会退出系统。三次错误输入密码,系统自动退出,有效的提高了系统的安全性。点击创建服务器,服务器就开始侦听客户端的请求,如果有客户端连接请求,连接列表上会显示客户端的信息,点击“刷新列表”,会显示连接的客户端列表。在连接列表中选择一个客户端,点击“断开连接”,服务器会把该客户端断开。选择一个客户端,点击“发送文件”,转到发送文件窗口。选择一个客户端,点击“数据管理”,会转到数据管理窗口。选择指定的客户端,点击“文件传输”标签,显示如图13的窗口,可以与客户端进行文件传输和聊天。在下方的文本框中输入要发送的文字,点击“发送”,消息会发送到客户端,同时显示在上方的文本框中。点击“聊天记录”按钮,可以查看与客户端的聊天记录,聊天记录显示在上方的文本框中。点击“删除记录”按钮,会删掉与客户端的聊天记录。文件传输功能,点击“选择文件”,选择要发送的文件,再点击“发送文件”,文件会发送给客户端,同时提示发送成功。点击“数据管理”标签,转到“数据管理”窗口。在个人信息管理栏中,输入用户名密码,点击“确定修改”,个人登录密码修改成功。在“管理数据库”栏中,点击“管理数据库信息”转到13数据库管理系统的使用及说明如图所示,数据库操作模块所实现的功能是,可以对数据库中的数据表进行增删改查,点击“添加”按钮,可以向数据表中添加一条记录。点击“查询”按钮,可以查询指定的数据,并且显示在右侧的列表框中。点击“修改按钮”可以修改指定的数据。点击“删除”按钮,可以删除指定的记录。点击下面四个按钮,可以显示上一条、下一条、第一条、最后一条记录。第二章系统流程图21服务器端和客户端通信设计流程图211通信前准备工作1数据库客户端调用CONNECT函数以连接到服务器2服务器端调用LISTEN函数监听客户的进入3服务器端调用ACCEPT函数与客户建立连接212收发数据流套接字发送数据接收数据方法/CASYNCSOCKET类SENDRECEIVE213处理通知消息用于处理通知消息的虚函数ONACCEPT当一个连接请求到来时ONCONNET当一个连接尝试完成时ONCLOSE当另一端套接字关闭时ONRECEIVE当准备好接收数据时ONSEND当准备好发送数据时22数据库设计流程221DBMS简介DBMS(数据库管理系统)是一套程序,用来定义、管理和处理数据库与应用程序之间的联系,例如FOXPRO、ACCESS、SYBASE等都是DBMS。图101说明了用户、DBMS和数据库三者的关系。图101用户、DBMS、数据库三者的关系222ODBC简介ODBCOPENDATABASECONNECTIVITY,开放数据库互连是微软公司开放服务结构WOSA,WINDOWSOPENSERVICESARCHITECTURE中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FOXPRO、ACCESS还是ORACLE数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成应用程序APPLICATION。ODBC管理器ADMINISTRATOR。该程序位于WINDOWS95控制面板CONTROLPANEL的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。驱动程序管理器DRIVERMANAGER。驱动程序管理器包含在ODBC32DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。ODBCAPI。ODBC驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图102所示223MFC中ODBC主要的类MFC的ODBC类主要包括CDATABASE类主要功能是建立与数据源的连接。CRECORDSET类该类代表从数据源选择的一组记录(记录集),程序可以选择数据源中的某个表作为一个记录集,也可以通过对表的查询得到记录集,还可以合并同一数据源中多个表的列到一个记录集中通过该类可对记录集中的记录进行滚动、修改、增加和删除等操作。CRECORDVIEW类提供了一个表单视图与某个记录集直接相连,利用对话框数据交换机制DDX在记录集与表单视图的控件之间传输数据。该类支持对记录的浏览和更新,在撤销时会自动关闭与之相联系的记录集。CFIELDEXCHANGE类支持记录字段数据交换(DFX),即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。该类的功能与CDATAEXCHANGE类的对话框数据交换功能类似。CDBEXCEPTION类代表ODBC类产生的异常。概括地讲,CDATABASE针对某个数据库,它负责连接数据源;CRECORDSET针对数据源中的记录集,它负责对记录的操作;CRECORDVIEW负责界面,而CFIELDEXCHANGE负责CRECORDSET与数据源的数据交换。224MFC与ODBC应用程序的数据交换机制如图所示,显示了MFC的ODBC应用程序中的DDX和RFX数据交换225数据库设计的主要步骤数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是1数据库结构定义目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有的联机分析处理CLAP(指为支持决策的制度对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的,有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。2数据表定义数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括属性名称、类型、表示形式、缺省值、效验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程序应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。3存储设备和存储空间组织确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。4数据使用权限设置针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。5数据字典设计用数据字典描述数据库的设计,便于维护和修改。第三章程序调试与参数测试31故障排除方法白盒测试运行出现错误后,查看代码,检查错误的原因,如果查不出来,就用AFXMESSAGEBOX语句,如果消息框弹出之后,说明是AFXMESSAGEBOX代码后面有错误,就这样一条一条的执行,检查出错误黑盒测试如果运行没有错误,测试功能是否完全实现,功能不正确或遗漏;界面错误;输入和输出错误;数据库访问错误;性能错误;初始化终止错误;31文件传输问题问题文件传输功能的实现时,需要判断接收到的是文件还是普通消息,如果是文件则写到磁盘中,如果是普通消息则显示在聊天文本框中。解决方法如果服务器向客户端传文件,先传送一个定义好的字符串“CSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1CDIALOG2PDLG2CHARPBUFNEWCHAR4096INTIBUFSIZE4096INTIRCVDCSTRINGSTRRECVDIRCVDRECEIVEPBUF,IBUFSIZEIFIRCVDSOCKET_ERRORPDLG2MESSAGEBOX“SOCKET_ERROR“ELSEPBUFIRCVD0CSTRINGSTRPBUF/判断客户端发来的信息,是不是同意接收IFSTRCOMPARE“CSTRINGPATHNAMEPDLG2PATHNAMEINTSENDRESULTCFILEFILEFILEOPENPATHNAME,CFILEMODEREADWRITECHARCINTLENFILEGETLENGTHCNEWCHARLEN3CLEN0CLEN1CLEN2FILEREADC,LENSENDRESULTPDLG1M_SERVERSOCKETM_SOCKETSENDC,LEN3IFSENDRESULTSOCKET_ERRORAFXMESSAGEBOX“连接失败,请重试“ELSEPDLG2PATHNAME“PDLG2SETDLGITEMTEXTIDC_EDIT_FILEPATH,“PDLG2FILESENDSUCCESSFLAG1/同意接收ELSEIFSTRCOMPARE“PDLGFROMCLIENT“PDLG2PATHNAME“PDLG2SETDLGITEMTEXTIDC_EDIT_FILEPATH,“PDLG2FILESENDSUCCESSFLAG2/拒绝接收/判断收到的信息是不是客户端发来的发送文件请求。ELSEIFSTRCOMPARE“IFRESULTIDYESPDLGTOCLIENT“ELSEIFRESULTIDNOPDLGTOCLIENT“/判断客户端端发来的信息是不是同意接收文件,如果是,则发送文件ELSEIFSTRCOMPARE“INTSENDRESULTCFILEFILEFILEOPENPATHNAME,CFILEMODEREADWRITECHARCINTLENFILEGETLENGTHCNEWCHARLEN3CLEN0CLEN1CLEN2FILEREADC,LENSENDRESULTPDLG1M_SERVERSOCKETM_SOCKETSENDC,LEN3IFSENDRESULTSOCKET_ERRORPDLG2MESSAGEBOX“连接失败,请重试“ELSEPDLG2PATHNAME“PDLG2SETDLGITEMTEXTIDC_EDIT_FILEPATH,“PDLG2FILESENDSUCCESSFLAG1/同意接收/判断收到的信息是不是文件,如果是文件则保存到磁盘中。ELSEIFSTRRIGHT2“PBUFIRCVD1NULLPBUFIRCVD2NULLPBUFIRCVD3NULLCSTRINGSTRPBUFSTRSTRLEFTIRCVD3CFILEFILEFILEOPEN“CABC“,CFILEMODECREATE|CFILEMODENOTRUNCATE|CFILEMODEREADWRITEFILEWRITEPBUF,IRCVD3PDLG2MESSAGEBOX“文件接收完毕,请查收“ELSEPDLGFROMCLIENT“PDLG2M_RCVMSG“客户机“PDLG2M_RCVMSGPBUFPDLG2M_RCVMSG“RN“PDLG2REFRESHSCREENSTRRECVDPBUFCFILEFILEFILEOPEN“CSERVERCHATLOG“,CFILEMODECREATE|CFILEMODENOTRUNCATE|CFILEMODEREADWRITEFILESEEKTOENDFILEWRITE“客户机“,STRLEN“客户机“FILEWRITEPBUF,STRRECVDGETLENGTHFILEWRITE“RN“,STRLEN“RN“DELETEPBUFCASYNCSOCKETONRECEIVENERRORCODE第四章程序41客户端程序411网络连接窗口程序主要功能实现代码客户端与服务器端建立连接点击“建立连接”触发ONCONNECT方法,M_SOCKETCONNECT语句触发VOIDCMYSOCKETONCONNECTINTNERRORCODE,请求服务器建立连接。方法实现如下VOIDCDIALOG1ONCONNETCTIFAFXSOCKETINITAFXMESSAGEBOX“加载套接字库失败“RETURNCCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDCDIALOG1PDLG1CDIALOG2PDLG2PDLG1GETDLGITEMTEXTIDC_IPADDRESS1,M_IPSTRPDLG2M_SOCKETM_HSOCKETINVALID_SOCKETUPDATEDATATRUEBOOLFLAGPDLG2M_SOCKETCREATEIFFLAGAFXMESSAGEBOX“SOCKETERROR“RETURNPDLG2M_SOCKETCONNECTPDLG1M_IPSTR,PDLG1M_PORTVOIDCMYSOCKETONCONNECTINTNERRORCODECCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDCDIALOG2PDLG2CDIALOG1PDLG1INTIRESULTNERRORCODECSTRINGBUFFERINTNAMELENIFIRESULT0BUFFERFORMAT“连接服务器失败。RN“PDLG1SETDLGITEMTEXTIDC_CONNECT_STATE,“连接服务器失败。“PDLG2M_RCVMSGBUFFERPDLG2REFRESHSCREENAFXMESSAGEBOX“AAAAAA“ELSENAMELENSIZEOFSOCKADDR_INBUFFERFORMAT“成功连接到服务器SDRN“,PDLG1M_IPSTR,PDLG1M_PORTPDLG2M_RCVMSGBUFFERPDLGREFRESHSCREENINFOI9INFOPCTRLPROGRESSPDLG1M_PROGRESSSHOWWINDOWTRUECWINTHREADPTHREAD1AFXBEGINTHREADFUNCONNECT,CASYNCSOCKETONCONNECTNERRORCODE断开连接点击“断开连接”按钮,触发VOIDCDIALOG1DISCONNECT事件,具体实现方法如下VOIDCDIALOG1DISCONNECTCCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDCDIALOG2PDLG2PDLG2M_SOCKETCLOSEPDLG2M_SOCKETISCONNECTFALSE进度条与连接状态的实现点击“建立连接”启动一个进程FUNCONNECT()FUNTIME()CWINTHREADPTHREAD1AFXBEGINTHREADFUNCONNECT,CWINTHREADPTHREAD2AFXBEGINTHREADFUNTIME,PDLG1THREAD1功能显示进度条,THREAD2功能显示连接状态和连接时间,THREAD1结束前调用THREAD2进程的代码实现如下STRUCTTHREADINFOINTICPROGRESSCTRLPCTRLPROGRESSINFOCSTRINGSTRTIMECSTRINGSTRSTATEUINTFUNCONNECTPVOIDPCCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDCDIALOG1PDLG1THREADINFOPINFOTHREADINFOPINTNTEMPFORINTI0IIPINFOPCTRLPROGRESSSETPOSISLEEPNTEMPPDLG1MESSAGEBOX“已建立连接“PDLG1M_PROGRESSSHOWWINDOWFALSECWINTHREADPTHREAD2AFXBEGINTHREADFUNTIME,PDLG1PDLG1GETDLGITEMIDC_CONNETCTENABLEWINDOWFALSERETURN0UINTFUNTIMEPVOIDPCDIALOG1PDLG1CDIALOG1PCTIMESTARTTIMESTARTTIMECTIMEGETCURRENTTIMECTIMECURTIMECTIMESPANCURSPANCSTRINGCONTIMECSTRINGCONSTATEBCONNECTTRUEWHILE1IFBCONNECTTRUE/AFXMESSAGEBOX“TRUE“CONSTATE“建立连接“CURTIMECTIMEGETCURRENTTIMECURSPANCURTIMESTARTTIMECONTIMECURSPANFORMAT“HMS“PDLG1SETDLGITEMTEXTIDC_CONNECT_STATE,CONSTATEPDLG1SETDLGITEMTEXTIDC_CONNECT_TIME,CONTIMESLEEP1000ELSEIFBCONNECTFALSECONSTATE“服务器已断开连接“PDLG1SETDLGITEMTEXTIDC_CONNECT_STATE,CONSTATEPDLG1SETDLGITEMTEXTIDC_CONNECT_TIME,“PDLG1GETDLGITEMIDC_CONNETCTENABLEWINDOWTRUERETURN0RETURN0412文件传输窗口程序发送和接受消息的同时会把消息写入到聊天记录文件中。发送功能的实现VOIDCDIALOG2ONSENDMSGINTILENINTISENTUPDATEDATATRUEIFM_MSG“ILENM_MSGGETLENGTHISENTM_SOCKETSENDLPCTSTRM_MSG,ILENIFISENTSOCKET_ERRORAFXMESSAGEBOX“连接失败,请重试“ELSECFILEFILEFILEOPEN“CCLIENTCHATLOG“,CFILEMODEREADWRITE|CFILEMODECREATE|CFILEMODENOTRUNCATEM_RCVMSG“客户机“M_MSGM_RCVMSG“RN“FILESEEKTOENDFILEWRITE“客户机“,STRLEN“客户机“FILEWRITEM_MSG,M_MSGGETLENGTHFILEWRITE“RN“,STRLEN“RN“M_MSG“UPDATEDATAFALSE查看聊天记录功能的实现VOIDCDIALOG2ONCHATLOG/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHERECFILEFILEFILEOPEN“CCLIENTCHATLOG“,CFILEMODEREAD|CFILEMODECREATE|CFILEMODENOTRUNCATEFILESEEKTOBEGINCHARCCNEWCHARFILEGETLENGTH1CFILEGETLENGTH0FILEREADC,FILEGETLENGTHCSTRINGSTRCM_RCVMSGSTRUPDATEDATAFALSEFILECLOSEDELETEC删除聊天记录功能的实现VOIDCDIALOG2ONDELETELOGCFILEFILEFILEOPEN“CCLIENTCHATLOG“,CFILEMODECREATEM_RCVMSG“FILECLOSEUPDATEDATAFALSE选择文件功能的实现VOIDCDIALOG2ONBUTSELECTFILECCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDCDIALOG2PDLG2CFILEDIALOGDLGTRUE,“,“,OFN_ALLOWMULTISELECT,NULLIFDLGDOMODALIDOKPATHNAMEDLGGETPATHNAMEPDLG2SETDLGITEMTEXTIDC_EDIT_PATHNAME,PATHNAMEELSEPATHNAME“PDLG2SETDLGITEMTEXTIDC_EDIT_PATHNAME,PATHNAME发送文件功能的实现VOIDCDIALOG2ONBUTSENDFILECCLIENTAPPPAPPCCLIENTAPPAFXGETAPPCCLIENTDLGPDLGCCLIENTDLGPAPPM_PMAINWNDIFPATHNAME“AFXMESSAGEBOX“请选择文件“ELSECSTRINGCTRLSTR“PDLGTOSERVERCTRLSTRINFO2I2INFO2PCTRLPROGRESSCWINTHREADTHREAD1AFXBEGINTHREADFUNCONNECT2,进度条功能的实现点击“发送文件”按钮启动一个线程,具体实现如下STRUCTTHREADINFOINTICPROGRESSCTRLPCTRLPROGRESSINFO/发送文件进度条线程UINTFUNCONNECTPVOIDPCSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG2PDLG2IFPDLG2FILESENDFAILFLAGTRUEPDLG2MESSAGEBOX“文件发送失败“PDLG2FILESENDFAILFLAGFALSERETURN0PDLG2GETDLGITEMIDC_BUT_SENDFILEENABLEWINDOWFALSEPDLG2SETDLGITEMTEXTIDC_BUT_SENDFILE,“文件发送中“THREADINFOPINFOTHREADINFOPWHILEPDLG2FILESENDSUCCESSFLAG0PDLG2M_PROGRESSSHOWWINDOWTRUEINTNTEMPFORINTI0IIPINFOPCTRLPROGRESSSETPOSISLEEPNTEMPIFPDLG2FILESENDSUCCESSFLAG1PDLG2MESSAGEBOX“文件发送成功“PDLG2FILESENDSUCCESSFLAG0ELSEIFPDLG2FILESENDSUCCESSFLAG2PDLG2MESSAGEBOX“客户端拒绝接收文件“PDLG2FILESENDSUCCESSFLAG0PDLG2M_PROGRESSSHOWWINDOWFALSEPDLG2GETDLGITEMIDC_BUT_SENDFILEENABLEWINDOWTRUEPDLG2SETDLGITEMTEXTIDC_BUT_SENDFILE,“发送文件“PDLG2FILESENDSUCCESSFLAG0RETURN0413附加功能附加功能是通过用动态连接库实现,简易计算器通过调用外部DLL文件中的方法实现加减乘除。VOIDCDIALOG3ONBUTADDUPDATEDATATRUEM_NUM3ADDM_NUM1,M_NUM2M_NUM10M_NUM20VOIDCDIALOG3ONBUTSUBUPDATEDATATRUEM_NUM3SUBM_NUM1,M_NUM2M_NUM10M_NUM20VOIDCDIALOG3ONBUTMULUPDATEDATATRUEM_NUM3MULM_NUM1,M_NUM2M_NUM10M_NUM20VOIDCDIALOG3ONBUTDIVUPDATEDATATRUEM_NUM3INTM_NUM1/M_NUM2M_NUM10M_NUM20VOIDCDIALOG3ONBUTEQUUPDATEDATAFALSE42服务器端程序421网络侦听窗口程序监听功能的实现点击“创建服务器”触发VOIDCDIALOG1ONLISTEN方法,VOIDCDIALOG1ONLISTENPTHREADRESUMETHREADCLOSEHANDLEPTHREADCSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1UPDATEDATATRUEIFAFXSOCKETINITAFXMESSAGEBOX“加载套接字库失败“RETURNBOOLFLAGPDLG1M_SERVERSOCKETCREATEPDLG1M_PORTIFFLAGAFXMESSAGEBOX“SOCKETERROR1“RETURNFLAGPDLG1M_SERVERSOCKETLISTEN3IFFLAGAFXMESSAGEBOX“SOCKETERROR2“RETURNPDLG1SETDLGITEMTEXTIDC_LISTEN,“正在监听“PDLG1GETDLGITEMIDC_LISTENENABLEWINDOWFALSEVOIDCMYSERVERSOCKETONACCEPTINTNERRORCODE/TODOADDYOURSPECIALIZEDCODEHEREAND/ORCALLTHEBASECLASSCSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1PDLG1M_REMINDER“有新的连接,已连接上“PDLG1REFRESHSCREEN/创建一个新的套接字对象,用来接收连接请求的套接字。CMYSOCKETPSOCKETNEWCMYSOCKETIFACCEPTPSOCKETPSOCKETASYNCSELECTFD_READM_SOCKETPSOCKETCSTRINGRPEERADDRESSCHARSTRPORTNEWCHAR10UINTRPEERPORTM_SOCKETGETPEERNAMERPEERADDRESS,RPEERPORTITOARPEERPORT,STRPORT,10RPEERADDRESS“RPEERADDRESSSTRPORTRPEERADDRESS“主机已经建立连接“PDLG1M_LISTADDSTRINGRPEERADDRESSPDLG1REFRESHSCREENPDLG1GETDLGITEMIDC_REFRESHENABLEWINDOWTRUEPDLG1GETDLGITEMIDC_NONCONENABLEWINDOWTRUEPDLG1GETDLGITEMIDC_SENDENABLEWINDOWTRUEPDLG1GETDLGITEMIDC_SCREENCTRLENABLEWINDOWTRUECASYNCSOCKETONACCEPTNERRORCODE断开连接功能的实现VOIDCDIALOG1ONNONCONCSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1INTINDEXPDLG1M_LISTGETCURSELIFINDEXM_SERVERSOCKETM_SOCKETCLOSEPDLG1M_SERVERSOCKETM_SOCKETISCONNECTFALSEAFXMESSAGEBOX“断开连接“PDLG1M_LISTDELETESTRINGINDEX/需要改变,根据选择的给你变量PDLG1REFRESHSCREEN发送文件功能的实现VOIDCDIALOG1ONSEND/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHERECSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1CDIALOG2PDLG2CDIALOG3PDLG3INTINDEXINDEXPDLG1M_LISTGETCURSELIFINDEXSHOWWINDOWTRUEPDLG1SHOWWINDOWFALSEPDLG3SHOWWINDOWFALSEPDLGM_TABSETCURSEL1数据管理功能的实现VOIDCDIALOG1ONSCREENCTRL/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHERECSERVERAPPPAPPCSERVERAPPAFXGETAPPCSERVERDLGPDLGCSERVERDLGPAPPM_PMAINWNDCDIALOG1PDLG1CDIALOG2PDLG2CDIALOG3PDLG3INTINDEXINDEXPDLG1M_LISTGETCURSELIFINDEXSHOWWINDOWFALSEPDLG2SHOWWINDOWFALSEPDLG3SHOWWINDOWTRUEPDLGM_TABSETCURSEL2422文件传输窗口程序实现功能和客户端文件传输功能一样,参看客户端文件传输功能。423数据管理窗口程序1确定修改功能点击“确定修改”按钮,修改密码,把密码和用户名写入到文件中,每次登录时读取该文件,查看输入的和文件中的内容是否一致,如果一致转向主界面。VOIDCDIALOG3ONBUTUPDATACFILEFILEFILEOPEN“MIMA“,CFILEMODEREADWRITE|CFILEMODECREATE|CFILEMODENOTRUNCATEUPDATEDATATRUECSTRINGSTRM_PASSWORDSTRM_USERNAMEFILEWRITESTR,STRGETLENGTHAFXMESSAGEBOX“密码修改成功“M_PASSWORD“M_USERNAME“UPDATEDATAFALSE2管理数据库信息按钮功能启动另一个应用程序“TEST6EXE”,改程序实现对数据库的管理。VOIDCDIALOG3ONBUTUSERCONWINEXEC“TEST6EXE“,543数据库管理程序添加VOIDCTEST6VIEWONADDUPDATEDATATRUECSTRINGSTRTRYCRECORDSETADDM_PDATABASEIFM_PDATABASEISOPENM_PDATABASECLOSEM_PDATABASEOPENCRECORDSETSNAPSHOT,NULL,CRECORDSETNONEM_PDATABASEADDNEWM_PDATABASEM_NAMEM_COMSTR1M_PDATABASEM_USERNAMEM_COMSTR2M_PDATABASEM_USERPASSWORDM_COMSTR3IFM_PDATABASECANUPDATEM_PDATABASEUPDATEM_PSETREQUERYM_PDATABASECLOSEIFM_PSETISEOFM_PSETMOVENEXTCATCHCDBEXCEPTIONEEREPORTERRORRETURNSTRFORMAT“添加记录S成功“,M_COMSTR1M_COMSTR1“M_COMSTR2“M_COMSTR3“UPDATEDATAFALSEMESSAGEBOXSTR,NULL,MB_OK|MB_ICONINFORMATION查询VOIDCTEST6VIEWONBUTLOOKCRECORDSETADDM_PDATABASEUPDATEDATATRUEIFM_COMSTR1“CSTRINGCOL1“NAME“CSTRINGCOL2“USERNAME“CSTRINGCOL3“USERPASSWORD“M_PSETCLOSEM_PSETM_STRFILTERCOL1“M_COMSTR1“M_PSETOPENM_COMSTR1M_PSETM_NAMEM_COMSTR2M_PSETM_USERNAMEM_COMSTR3M_PSETM_USERPASSWORDCSTRINGSTRM_COMSTR1STR“姓名“STRM_COMSTR2STR“用户名“STRM_COMSTR3STR“密码“M_LISTADDSTRINGSTRUPDATEDATAFALSEM_PSETCLOSE删除VOIDCTEST6VIEWONBUTDELTRYCSTRINGSTRCRECORDSETADDM_PDATABASEIFM_PDATABASEISOPENM_PDATABASECLOSESTRFORMAT“S“,M_PSETM_NAMEM_PDATABASEM_STRFILTERFORMAT“NAMES“,STRM_PDATABASEOPENCRECORDSETSNAPSHOT,NULL,CRECORDSETNONEM_PDATABASEDELETEIFM_PDATABASEISEOFM_PDATABASEMOVELASTELSEM_PDATABASESETFIELDNULLNULLIFM_PDATABASEISOPENM_PDATABASECLOSEM_PSETREQUERYUPDATEDATAFALSESTRFORMAT“删除记录“M_PDATABASEM_NAME“成功“MESSAGEBOXSTR,NULL,MB_OK|MB_ICONINFORMATIONCATCHCDBEXCEPTIONEEREPORTERRORRETURN翻页功能VOIDCTEST6VIEWONBUTTOPTRYCRECORDSETADDM_PDATABASEIFM_PDATA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校外安全应急知识培训总结课件
- 校园防火安全知识培训课件
- 校园物业安全知识培训课件
- 校园应急知识培训课件会议记录
- 淄博驾照考试试题及答案
- 播音模拟测试题及答案
- 安东集团面试题及答案
- 铁军学院考试题及答案
- 光大证券财务面试题及答案
- 2025年合肥肥东县招聘乡镇消防岗位人员考试笔试试题(含答案)
- 2025年云南高考真题化学试题含答案
- 2025-2030年中国再生建筑骨料行业市场现状供需分析及投资评估规划分析研究报告
- 2025届中考物理全真模拟卷【云南专用】(含解析)
- 大型医院食堂管理制度
- JG/T 355-2012天然石材用水泥基胶粘剂
- 2025消瘦诊治与管理专家共识解读课件
- DB62T 4248-2020 青海云杉育苗技术规程
- DB32/T 3390-2018一体化智能泵站应用技术规范
- 2025“铸牢中华民族共同体意识”应知应会网络知识竞赛试题及答案(三套)
- 2025年家庭教育指导考试试卷及答案总结
- 《患者满意度提升》课件
评论
0/150
提交评论