【VB开源代码栏目提醒】:网学会员,鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“网络聊天程序设计 - 其它论文”一文,供大家参考学习!
程序设计实践训练课程设计
报告 号: 我们生活中有很多软件,可是你对它了解多少呢?现在那些什么 QQ、MSN 之类的聊天程序已经很常见了,不要觉得它们好像很深奥一样,实际上你只要懂得它的基本原理,你就可以很好的把握它。
VC 作为一个
常用的编程工具,它功能的强大毋庸置疑,而且微软把它的操作界面做的很友好,把它作为我们的编程的工具不失为一个很好的方案;VC 的实际编程要融入多种技术例如:网络技术、数据库技术、串口技术等,还有框架的理解也很重要,而我们所做的聊天软件是在对话框中加入网络技术。
聊天软件有很多种,不过这些程序一般由两大部分组成:服务器聊天程序和客户端聊天程序。
当然若软件较小或用于实验,你也可把客户端与服务器连在一起。
这次实践可以让我们更加了解编程理念,使我们熟悉编程思维还有
网络技术的实际运用…… i 目 录1 方案比较与选择 1 1.1 方案比较 1 1.2 方案选择 12 工具选择与功能实现 2 2.1 工具选择与相关介绍 2 2.2 功能实现 3 2.3 方案系统框图 83 程序的设计与分析 9 3.1 基本类的建立 9 3.2 分析与添加功能 9 3.3 一些添加的
代码 94 讨论及进一步研究建议 125
课程设计心得 12Abstract 13参考文献 14 I1.方案比较与选择1.1
方案比较方案一: 将服务器与客户端都放在一个程序里。
优点: 简单、便易,只用一个软件就可以实现服务器与客户端的功能,不用考虑服务器 与客户端之间的接口,因为它们本来就连接在一起,而且操作也很简便,编程时也省 去很多功夫,有好些程序可以共用。
缺点: 首先较占用资源,如果只使用服务器或客户端时,有好很多资源是没有利用到的; 还有当出现问题时,要维护也比较困难,因为你要找出问题的所在,可是这个程序是 服务器与客户端都在一起的。
方案二: 将服务器与客户端分成两个程序。
优点: 维护时比较容易,可以很快找出到底是服务器还是客户端出了问题,特别是程序 较大时,这更显重要,还有可以节省一些不必要的资源浪费,你只要知道一种程序的 原理就可以编写与维护程序了。
也可以用于技术的保密,服务器往往比客户端要复杂 的多。
缺点: 在运用过程中可能会比较麻烦,若程序较小,编成两个也没有什么必要;而且独 立编写好
程序时还要考虑两者直间的接口
问题,在实际运用中这往往是个不可忽视的 问题。
1.2 方案选择: 两个方案我们都去尝试实现,应为没有所谓的好坏,在某些情况下可能是第一种好些,但是在另为一些情况下可能就第二种好些。
12.工具选择与所要实现的功能2.1 工具选择与相关介绍: 使用 VC 编程,采用的是其中的 MFC,Visual C由微软的基本类型库MicrosoftFoundation Class library所支持。
MFC 类是一组预先定义的 C。
应用程序向导通过 因为用 VC 编程很方便,创建和继承 MFC 库的基本类以及派生出的新类生成一个应用软件。
有很多类是可以继承调用的,不用全都自己编写,对于我们这些初学者来说是一个很不错的选择。
Visual C:Visual C6.0 不仅是一个 C编译器,而且是一个基于 Windows 操作
系统的可视化集成开发环境(integrated development environmentIDE)。
Visual C6.0 由许多组件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard等开发工具。
这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环 境 。
Visual C它大 概 可以分 成 三个主 要 的部分 : Developer Studio、MFC、Platform SDK。
MFC 介绍:MFC微 软 基 础 类 Microsoft Foundation Classes实 际 上 是 微 软 提 供 的 用 于 在C环境下编写应用程序的一个框架和引擎VC是 WinDOS 下开发人员使用的专业C SDKSDKStandard SoftWare Develop Kit专业软件开发平台MFC 就是挂在它之上的一个辅助
软件开发包MFC 作为与 VC血肉相连的部分注意 C和 VC的区别:C是一种程序设计语言是一种大家都承认的软件编制的通用规范而 VC只 是 一 个 编 译 器 或 者 说 是 一 种 编 译 器 源 程 序 编 辑 器 的 IDEWSPlatForm这 跟Pascal 和 Delphi 的关系一个道理Pascal 是
Delphi 的语言基础Delphi 使用Pascal 规范来进行 Win 下应用程序的开发和编译却不同于 Basic 语言和
VB 的关系Basic 语言在
VB 开发出来被应用的年代已经成了 Basic 语言的新规范
VB 新加的 Basic 语言要素如面向对象程序
设计的要素是一种性质上的飞跃使
VB 既是一个 IDE又成长成一个新的程序设计语言MFC 同 BC集成的 VCL 一样是一个非外挂式的软件包类库只不过 MFC 类是微软为 VC专配的. 22.2 功能实现: 客户端部分: 手动输入服务器端 IP 地址和端口号进行连接 发送消息给服务器端并显示服务器端回传的消息 服务器端部分: 手动建立服务器端与客户端的连接请求 接收所有用户发送的消息 向所有在线用户群发消息 附加功能 在客户端和服务器端分别增加保存聊天记录的功能相关截图: 图表 1 类的建立 3图表 2 对话框的编辑 图表 3 图标 4 图表 4
代码列表图表 5 启动界面与建立服务器 5图表 6 客户端建立 图表 7 聊天效果 6图表 8 服务器端保存的聊天的记录图表 9 客户端保存的聊天的记录 72.3 方案系统框图: 83 程序设计与分析3.1 基本类的建立: 建立 3 个类CMessg、CClientSocket、CServerSocket分别实现数据串行化,客户端的建立与功能实现、服务器的初始化与功能实现;还要给ChatDlg 添加相应的函数用于调用上面的三个类以实现所需的功能。
基本功能在 2.2 的图片中可已得到体现。
3.2 分析与添加功能: 这个聊天软件,除了基本功能的实现,我们还添加了相应的功能,例如:可以看到发送的时间、可以再 IDC_SHOWTEXT 框里面区分服务器还是客户端、增加了保存的聊天记录的功能、游客进入时也会被保存(进入时间也会存下来并显示游客昵称)、设置了自己的用户的图形界面、添加了最小化功能、按回车键发送、图标设置。
3.3 一些添加的
代码:获取时间函数:CTime tRecordTime CTime::GetCurrentTimem_sMsgList2 tRecordTime.FormatY-m-d H:M:S//获取记录时间用于显示聊天记录存储实现(发送接收端都要添加):FILE fpCString str_name12str_name12 str_name 的聊天记录.txtfp fopenstr_name12a // 打 开 当 前 文 件 目 录 “ 某 某 某 的 聊 天 记录.txt”,没有则新建int lenm_sMsgList3.GetLengthchar buffernew charlen1 //缓冲存储ifbufferelse 9 strcpybufferm_sMsgList3 bufferlen0 fprintffpsbuffer //写入“聊天记录.txt”中 delete bufferfclosefp区分服务器与客户端的标记:ifmm_bClient mfalse m_sMsgList服务器rn添加背景图片相关
代码://CDialog::OnPaint //要禁止这个调用CPaintDC dcthisCRect rectGetClientRectrectCDC dcMemdcMem.CreateCompatibleDCdcCBitmap bmpBackgroundbmpBackground.LoadBitmapIDB_BITMAP1 //IDB_BITMAP1 是你自己的图对应的 IDBITMAP bitmapbmpBackground.GetBitmapbitmapCBitmap pbmpOlddcMem.SelectObjectbmpBackgrounddc.StretchBlt00rect.Widthrect.HeightdcMem00bitmap.bmWidthbitmap.bmHeightSRCCOPY游客进入聊天室时显示进入时间:CTime tRecordTime CTime::GetCurrentTime 10m_sMsgList一个游客进入聊天室了tRecordTime.FormatY-m-d H:M:Srn //服务器中的显示msg.m_strText 一 个 游 客 进 入 聊 天 室 了 tRecordTime.Format Y-m-dH:M:S //其它客户端的显示除刚进的那个游客SetDlgItemTextIDC_SHOWTEXTm_sMsgList游客进入使显示他的昵称:CString str_nameCMessg msgCTime tRecordTime CTime::GetCurrentTimeGetDlgItemTextIDC_NAMEstr_namestr_name进入聊天室了tRecordTime.FormatY-m-d H:M:Smsg.m_strTextstr_namem_clientsocket.SendMessagemsg添加 IDOK 与其函数,用于回车发送:void CChatDlg::OnOK // TODO: Add extra validation here CChatDlg::OnBnClickedButton1 // CDialog::OnOK 114. 讨论及进一步研究建议 这个聊天程序还有所欠缺,它没有 QQ、MSN 之类的聊天软件的功能那么多,不能传送文件、不能发送表情、没有离线消息、基本没有应用到数据库的功能、还没添加窗口震动等一些功能…… 做了一些功能上的完善如:时间显示、服务器与客户端的区分、存储聊天记录、添加程序的背景图片、按回车键发送、图标设置…… 由于时间的限制,我们仅仅添加了几个功能,而且还不是很完善,不过对于我们第一次编写 MFC 程序的初学者来说这已是一个很大的进步了,但是这并不能作为我们借口,我们要做的实在太多了,最主要是学会运用 VC 编程来解决实际的问题,前面的路还很长……5.课程设计心得 本次程序设计实习,让我们对于编程的涵义有了更深的理解,对于我们的帮助也具有深远的意义。
VC 的程序编写、MFC 的首次尝试使用、一个实用软件的编写、网络协议的添加;无疑加深了我们 C 语言知识结构的认知和对于网络连接的方式,而且自信心也大大的增强了,因为这是个我们自己编写出来的软件,看到自己的劳动成果与知识的结晶会很开心,对于以后的
学习也会很有帮助的。
12 The preparation of chat programAbstractSince we live there are many software but you know it how much Now that what the QQMSN-like chat program has been very common and do not think they like the sounds profoundin fact as long as you understand its basic principles you can grasp it well. VC as a commonprogramming tool that features a powerful no doubt but Microsoft is doing its interface is veryfriendly put it as our programming tools would be a good program VC more than the actualprogramming to integrate into the kinds of technology such as: network technology databasetechnology serial technology as well as the understanding of the framework is also veryimportantThe chat software is what we have done in the dialog box to add network technology. There area variety of chat software but these procedures are generally composed of two parts: a serverand client chat program chat program. Of course if the software or use a smaller experimentyou can also put the client and server together. This practice allows us to better understand theprogramming concepts so that we are familiar with programming ideas are the practicalapplication of network technologies ... ... 13参考文献1.Jon BatesTim Tompkins.实用 Visual C 6.0M.北京:清华大学出版社,2000.82.邓华,吉正,毛杰. Visual C案例教程M.北京:中国多媒体电子出版社,2001.83.常晋义,沈建,徐文彬. Visual C程序设计简明教程M. 北京:中国电力出版社, 2002.94.陈坚,陈伟. Visual C网络高级编程M. 北京:人民邮电出版社,2001.8 14