摘 要
本论文是关于一个通信软件的设计与实现. 首先介绍了该课题的来源和意义, 以及课题中作者使用的原理技术, 包括客户/服务器模式(C/S)结构原理, TCP/IP协议的体系结构等。然后详细分析了系统的整体设计,包括系统的功能介绍、实现思想, 系统的需求分析, 系统通信协议的设计,各个模块的体系结构,并采用UML技术,绘制整体程序结构图、流程图、类图、用例图等。
接下来是介绍了各个子模块的功能、实现思想及它们的流程图、类图、消息流框图等。最后是系统的分析及优缺点及系统的总结和展望。
终端通过实际的通信链路和服务器建立TCP连接。而服务器端是接受并验证客户端连接,动态管理在线用户名单。
关键字: C/S结构;TCP/IP协议;UML技术;网络编程
abstract
The paper is about the design and realization of correspondence software. In the First this paper introduced topic origin and the topic significance, As well as the principle and the technology that the author adopts in the paper , Including customer/Server (C/S) structure principle, TCP/IP protocol system structure and so on. Then author analyzes that the overall design, Including system function introduction, realization way, demand analysis, communication agreement design, system structure of each module. And adopting the UML technology, the author draws the overall procedure structure drawing, the flow chart, class drawing, and message flow chart and so on. Finally the paper introduced that the systematic analysis 、 the excellence and the disadvantage of the system ,the summary and the forecast of the system.
The terminal establishes the TCP communications through the actual correspondence link with the server. At the same time the server accepts and validates the connection of the client, dynamically manages the name list of the on-line users.
Key words: the C/S Structure; the TCP/IP Protocol; the UML Technology;
Network Programming
目 录
第一章 绪 论... - 1 -
1.1 课题的来源及意义... - 1 -
1.2 项目开发的几个重要环节... - 1 -
1.3 作者的主要工作... - 2 -
第二章 Socket编程基础... - 3 -
2.1 TCP/IP协议... - 3 -
2.1.1 TCP/IP参考模型的层次结构... - 3 -
2.1.2 TCP/IP协议的通信方式... - 4 -
2.2 Socket简介... - 5 -
2.2.1 Socket历史... - 5 -
2.2.2 Socket的类型... - 6 -
2.2.3 客户机/服务器模式... - 7 -
2.2.4 阻塞和非阻塞... - 7 -
第三章 需求分析... - 9 -
3.1 软件开发方案... - 9 -
3.2 软件的信息传递过程... - 9 -
3.3 系统初始化(活动图表示)... - 11 -
3.4 用户上下线动态管理... - 11 -
第四章 系统的概要设计... - 13 -
4.1 系统的实现思想... - 13 -
4.1.1 系统整体结构... - 13 -
4.2 通信协议和报文格式... - 13 -
4.3 结构、类型和宏... - 16 -
4.4 Chat的UI设计... - 17 -
第五章 系统的详细设计... - 18 -
5.1交互分析... - 18 -
5.2 Chat主要的类及其关系... - 18 -
5.2.1 CClientDlg 类... - 18 -
5.2.2 CClientSocket 类... - 19 -
5.2.3 CChatSocket 类... - 20 -
5.2.4 CClientApp类和CLoginDlg类... - 21 -
5.3 客户端上线(顺序图)... - 22 -
5.4 Server的类... - 22 -
5.4.1 CServerApp类和CMainFrame类... - 22 -
5.4.2 CserverDoc类... - 22 -
5.4.3 CServerView类... - 23 -
5.4.4 CListenSocket类... - 24 -
5.4.5 CDataSocket类... - 24 -
5.4.6 CSeverlnfoDig类和CAboutDlg类... - 24 -
5.5 Chat的实现... - 25 -
5.5.1 Server - 25 -
第六章 小结... - 38 -
参考文献... - 39 -
致 谢... - 40 -
第一章 绪 论
1.1 课题的来源及意义
目前,网上聊天的主要工具已经从初期的聊天室、论坛变为以MSN、QQ为代表的即时通信软件。据统计,迄今为止,全球约有一亿多人使用IM(即时通信)软件在网上交流。中国网民惯用的即时聊天工具——腾讯QQ从诞生到现在,注册用户已超过1.6亿,在线用户最高时超过200万人,而每天独立上线人数更是达到1200多万,拥有活跃用户5500万,几乎覆盖所有中国网民。
腾讯公司的QQ是一个相当流行的即时通信(IM)软件。QQ的基本功能就是QQ用户间的即时信息传输,因此,QQ以及一些类似的软件又称为“聊天软件”。经过不断的发展,QQ的功能已经相当丰富,但QQ最基本和应用最多的功能仍是即时文本传输。
本课题来源与对现代社会高速发达的通讯技术的需求。本课题软件采用客户机/服务器的网络通信的经典模型,整个课题分两大方面加以实现:一方面是服务端软件设计;另一方面是用户端软件设计。完成整个课题分三个阶段完成:
第一阶段:完成整体系统的分析以及通信协议的设计,初步确定整个软件的结构。
第二阶段:实现代码、调试,类结构设计,类图的构建完成客户端和服务器端软件开发工作。
第三阶段:完成对系统的测试分析,组装成品。
当今,全球通信产业的两个突出特点体现在:一是公众通信保持增长态势,一些国家和地区增势强劲,但存在发展不均衡的现象;二是宽带通信技术热点不断,研究和应用十分活跃。 本课题所设计的软件以简单的c/s经典网络通信结构为基础有较强的通信能力,特别是文本通信,以信息框的形式显示传输信息,易于用户读取与接收信息。这里需要说明的是,服务器必须有管理用户信息(登陆用户名、密码等)的永久存储介质,例如磁盘文件或数据库,但本课题为简化设计,把这部分省去。但课题所涉及的通信原理并没有省略,利用最基本的TCP通信协议实现客户端和服务器端的文本传输。