即时通讯系统的设计与实现毕业论文
基于andriod的语音即时通讯软件设计与实现大学毕设论文

摘要即时通讯是一种基于互联网的即时交流消息的业务,其利用互联网线路,通过文字、语音、视频、文件的信息进行交流与互动,有效的节省了沟通双方的时间与经济成本,自其诞生之日起就获得用户的青睐。
传统的即时通讯应用大多基于PC端实现,随着无线技术(3G网络的普及)和以iphone、android为代表的智能手机的流行,越来越多的用户更青睐在移动终端上使用即时通讯业务,尤其是语音IM业务。
本文分析了当前即时通讯的发展前景及其主流技术研究状况,并设计实现了一款基于android平台的语音即时通讯软件。
本文采用软件工程的管理方法和思想,对项目进行了严格的需求分析及各种用例分析,并提出了合适系统构架(包括服务器和客户端),采用瀑布模型的思想逐步实现软件的各种功能。
本系统涉及客户端和服务器两个部分,但出于时间方面的考虑,仅实现了客户端的相关功能,服务器的搭建实现不在本论文的研究范围之内。
客户端的设计与实现主要分为客户端界面、网络连接模块及语音控制处理模块三大部分进行分析介绍。
其中涉及到的主要技术包括XMPP协议、Android语音录制播放、Speex语音压缩及Android NDK开发的相关知识。
本系统基本完成了预期的各种功能,用户可以进行通畅的语音对话,语音质量满意,此外对语音的压缩也达到了预期的要求。
整个界面的设计也很人性化,达到了很好的用户体验度。
关键词:Android;即时通讯;Speex压缩;语音聊天;XMPP协议AbstractInstant Messaging is kind of Internet-based Instant chatting business, which make use of text,voice,vedio and file to comunicate with each other via Internet. This kind of Service is greatly cost-effective to both chatters and from the day it was born, it has become popular. Traditional instant messaging applications are mostly based on the PC side. Along with the development of wireless technology (especially the popularity of 3G network) and the popularity of smart phones such as iphone, and android, more and more users prefer to use instant messaging services on mobile terminals , especially the voice IM services. This paper analyzes the current prospects for the development of instant messaging and mainstream technology, and designed and implemented a voice instant messaging software based on the android platform.I take advantage of software engineering methods and thoughts,conducted a rigorous needs analysis and a variety of use case analysis, designed the entire architecture of the system (both server and client), tand make use of waterfall model to develop this software. This system involves two parts : the client and server, but for the time considerations, the design and employ of server is not included in this paper. Design and Implementation of the client is divided into the client interface, network connectivity modules, and voice control processing module three parts to be introduced. Involved techniques includes the XMPP protocol, the Android voice record and play,Speex and Android NDK knowledge.The system basically completed the excepted functions, the user can clearly make voice chatting, the voice quality is also satisfied, In addition ,The design of UI is also very human, and have a good user experience.Key words:Android;IM;Speex;V oice Chat;XMPP目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题研究的背景与意义 (1)1.2 Android平台发展概况 (2)1.2.1 Android系统构架 (2)1.2.2 Android组件 (3)1.3 XMPP协议 (3)1.3.1 XMPP协议简介 (4)1.3.2 XMPP会话模型 (4)1.4 语音即时通讯系统的应用前景及发展趋势 (4)1.5 本文的主要研究内容 (5)第2章系统可行性分析 (6)2.1 系统调查描述 (6)2.2 可行性分析 (6)第3章系统的需求分析 (8)3.1 系统功能用例分析 (8)3.2 系统非功能性分析 (9)3.2.1 系统界面设计及整体风格 (9)3.2.2 系统可扩展性及安全性 (9)3.2.3 错误日志和系统国际化 (10)第4章系统的总体设计 (11)4.1 系统总体结构设计 (11)4.1.1 系统总体结构 (11)4.1.2 客户端设计 (12)4.1.3 服务器端设计 (14)4.2 数据库设计 (14)4.2.1 系统配置信息数据设计 (14)4.2.2 SQLite数据库设计 (15)4.2.3 安全性 (16)4.3 网络层整体构架 (16)4.4 XMPP协议 (17)4.5 HTTP传输模块 (18)4.5.1 HTTP传输模块设计 (18)4.5.2 HTTP传输模块实现 (18)4.5 消息发送接收模块 (20)4.5.1 消息发送 (20)4.5.2 消息接收 (20)4.6 XML数据解析 (20)4.6.1 XML数据解析常用方法 (20)4.6.2 DOM结点简介 (21)4.6.3 使用DOM进行xml解析 (21)第5章系统详细设计与实施 (22)5.1 语音录制播放模块设计实现 (22)5.1.1 android音频系统 (22)5.1.2 语音录制与播放实现 (23)5.2 客户端模块设计与实现 (23)5.2.1 UI界面设计 (23)5.2.2 UI界面优化 (24)5.2.3 通讯模型设计 (25)5.2.4 语音模块设计 (25)5.2.5 通知系统设计及其实现 (26)5.3 Speex语音处理实现 (27)5.4 外部库链接实现 (28)5.4.1 NDK 简述 (29)5.4.2 NDK编程实现 (29)5.4.3 外部库链接编码实现 (30)5.5 语音模块测试 (30)5.6 语音压缩效果比较 (31)结论 (33)参考文献 (34)致谢..................................................... 错误!未定义书签。
毕业设计实时通信系统-论文正文

第 1 章概论§1.1 课题的来源及意义在网络无所不在的今天,在Internet上,有icq,oicq,ticq等网上寻呼软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好象一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他有号码。
现在,企业、机关、学校都建立起了自己的局域网,在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的,首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且,当局域网的机器很多时,这种方式更加麻烦。
于是,就想到做一个在局域网里的icq,在局域网里,我们可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,自己共享内容的简介等。
在学校建立起校园网里,这软件可以起到方便同学之间,教师之间,师生之间的相互联络,这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题。
并能最大限度地利用现有的网络资源,极大地提高工作效率。
为了适应校园网的建设,实现校园网内进行消息发布,学生交流,师生交流,网上作业等功能。
§1.2 网上寻呼的软件的现况网上寻呼软件在国外的有icq等,在国内的主要有腾讯的Oicq,还有Ticq,OmO和一些在网页上的即时通讯工具,像Chinaren网站上的WebMaster等等,都做得即美观,且功能强大,Oicq现在拥有非常大的用户群。
在局域网内的网上寻呼,就我知道的有武汉硕思软件公司的硕思即时通,能够较好的完成局域网上寻呼,聊天,发文件,收E-mail等功能。
现在也有很多,在局域网上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。
但是有服务器的通讯软件,有着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。
即时网络通信软件的设计与实现毕业设计论文

即时网络通信软件的设计与实现目录1.绪论 (1)1.1选题的意义 (1)1.2网络通信的研究现状 (2)1.3毕业设计解决的主要问题 (2)2.C/S即时网络通信软件的概述 (2)2.1系统的概念 (2)2.2可行性分析 (2)2.3系统的关键技术 (3)2.4系统的开发方法与开发工具 (4)2.5 通信软件流程分析 (5)3.服务器端的设计 (6)3.1服务器端功能的设计 (6)3.2服务器端功能框架图 (7)3.3服务器端的工作流程 (7)3.4服务器端控件设计 (8)3.5服务器端界面设计 (8)4.客户端功能设计 (9)4.1客户端功能框架图 (9)4.2客户端工作流程 (10)4.3客户端控件的设计 (11)4.4客户端界面的设计 (12)5.网络通信软件代码的实现 (14)5.1网络通信软件服务器端代码的实现 (14)5.2建立服务器代码的实现 (14)5.3实现文字与语音通信代码的实现 (15)5.4客户端实现文件交换代码的实现 (16)6.通信软件的测试 (17)7.结论与展望 (18)7.1结论 (18)7.2 展望 (18)参考文献 (19)ABSTRACT (19)基于C/S即时网络通讯软件的设计与实现王磊内容提要:叙述了传统通信方式,新兴网络通信的现状和优缺点,重点讲述了基于C/S 的即时网络通讯软件的设计与实现,设计工具采用微软开发的Visual C++ 6.0中的Win32 SDK 和MFC类库。
通过在服务器端安装服务器程序,在客户端安装客户端程序,实现了多个用户之间的文字聊天、文件发送,并初步实现了语音聊天的功能。
通过开发一个与实际应用相结合的通信软件深入学习和理解了软件的初步开发流程。
关键词:网络通讯软件 Client/Server 文件发送语音聊天 Visual C++1. 绪论1.1选题的意义21世纪是信息的时代,人与人之间的交流越来越密切,传统的通信方式,如电话,电报等在实时上虽仍占有一定的优势,但是在信息高速发展的今天,传统通信方式由于其成本过高,方式单一的缺点,越来越暴露其弊端。
JQQ即时通讯系统的的设计和实现

本科生毕业论文(设计)论文(设计)题目:J 即时通讯系统的设计与实现学院:电子信息工程学院专业:网络工程J 即时通讯系统的设计与实现[摘要]运用Internet和Java开发技术,采用C/S模式,建立一个基于应用的即时通讯系统。
本系统实现了用户注册,用户登陆,分组管理,好友管理,查询用户,用户即时通讯,查看聊天记录等功能。
用户注册是通过系统来添加新的用户;用户登录用来验证用户的信息是否合法;分组管理功能主要是对分组的管理,如添加分组、删除分组等;好友管理功能主要是对好友的管理,如添加好友、删除好友等;查询用户是查询所有已注册的用户以便加为好友进行通讯;用户即时通讯使成为好友的双方可以即时在线交流;查看聊天记录保存了与好友通讯的所有记录。
[关键词]即时通讯系统;C/S模式;TCP;UDPJ instant messaging system design and ImplementationAbstract:The use of Internet and Java development technologies, using C / S mode, a real-time communication system based on application. The system implements user registration, user login, group administration, friends manage, query user, instant messaging, view the chat history. User registration is through the system to add new users; user login used to authenticate the user's information is legitimate; group management functions mainly for the management of groups, such as adding a group, delete group, etc.; friends management functions mainly for friends management, such as adding friends, remove friends, etc.; query the user is the query to all registered users to add as friends to communicate; users to instant messaging to become friends of the two sides can exchange real-time online; view chat history with a good save friends of the communication of all records.Key words:Instant messaging system; C / S mode; TCP; UDP目录1 绪论41.1项目背景41.2国外研究现状51.3预期目标和经济效益51.4课题简要介绍61.5系统创新点62 需求分析72.1功能需求72.1.1 用户管理72.1.2 分组管理72.1.3 好友管理72.1.4 即时通讯82.2通讯模型的特点82.2.1 适用性82.2.2 扩展性92.3可行性研究92.3.1 技术可行性分析92.3.2 不确定性分析92.3.3 分析结论92.4运行环境103 概要设计103.1框架设计103.2拓扑结构103.3功能设计133.2.1 用户注册模块133.2.2 用户登录模块133.2.3分组管理模块143.2.4 好友管理模块143.2.5 查询用户模块153.2.6 即时通讯模块153.2.7 聊天记录模块153.4设计原则与一般要求154 系统设计164.1模块设计164.2即时通讯系统关系型数据库的实现164.2.1 数据库分析174.2.2 数据库概念设计174.2.3 数据库逻辑结构设计185 系统实现185.1注册模块185.2登录模块205.3分组管理模块错误!未定义书签。
即时网络通信软件的设计与实现 毕业论文

目录1.绪论 (1)1.1选题的意义 (1)1.2网络通信的研究现状 (2)1.3毕业设计解决的主要问题 (2)2.C/S即时网络通信软件的概述 (2)2.1系统的概念 (2)2.2可行性分析 (2)2.3系统的关键技术 (3)2.4系统的开发方法与开发工具 (4)2.5 通信软件流程分析 (5)3.服务器端的设计 (6)3.1服务器端功能的设计 (6)3.2服务器端功能框架图 (7)3.3服务器端的工作流程 (7)3.4服务器端控件设计 (8)3.5服务器端界面设计 (8)4.客户端功能设计 (9)4.1客户端功能框架图 (9)4.2客户端工作流程 (10)4.3客户端控件的设计 (11)4.4客户端界面的设计 (12)5.网络通信软件代码的实现 (14)5.1网络通信软件服务器端代码的实现 (14)5.2建立服务器代码的实现 (14)5.3实现文字与语音通信代码的实现 (15)5.4客户端实现文件交换代码的实现 (16)6.通信软件的测试 (17)7.结论与展望 (18)7.1结论 (18)7.2 展望 (18)参考文献 (19)ABSTRACT (19)计算机信息工程学院本科毕业设计基于C/S即时网络通讯软件的设计与实现王磊内容提要:叙述了传统通信方式,新兴网络通信的现状和优缺点,重点讲述了基于C/S 的即时网络通讯软件的设计与实现,设计工具采用微软开发的Visual C++ 6.0中的Win32 SDK 和MFC类库。
通过在服务器端安装服务器程序,在客户端安装客户端程序,实现了多个用户之间的文字聊天、文件发送,并初步实现了语音聊天的功能。
通过开发一个与实际应用相结合的通信软件深入学习和理解了软件的初步开发流程。
关键词:网络通讯软件 Client/Server 文件发送语音聊天 Visual C++1. 绪论1.1选题的意义21世纪是信息的时代,人与人之间的交流越来越密切,传统的通信方式,如电话,电报等在实时上虽仍占有一定的优势,但是在信息高速发展的今天,传统通信方式由于其成本过高,方式单一的缺点,越来越暴露其弊端。
基于Android平台即时通信系统的设计与实现

基于Android平台即时通信系统的设计与实现一、概述随着移动互联网的快速发展和智能手机的广泛普及,即时通信系统(Instant Messaging System,简称IMS)已经成为人们日常生活中不可或缺的沟通工具。
特别是在Android平台上,由于其开放性和广泛的用户基础,开发一款高效、稳定、用户友好的即时通信系统显得尤为重要。
本文旨在探讨基于Android平台的即时通信系统的设计与实现,包括系统架构、关键技术、功能模块以及用户体验优化等方面。
我们将对即时通信系统的发展历程进行简要回顾,分析其在Android平台上的发展现状和趋势。
我们将详细介绍系统的整体架构设计,包括前端用户界面、后端服务器架构、数据库设计等关键部分。
在此基础上,我们将深入探讨实现即时通信功能所需的关键技术,如网络通信协议、消息加密与解密、用户身份认证等。
我们还将介绍系统中各个功能模块的设计与实现,如用户管理模块、消息处理模块、文件传输模块等。
每个模块都将详细阐述其功能特点、实现原理以及面临的挑战和解决方案。
我们将讨论如何通过优化算法和界面设计来提升用户体验,包括降低延迟、提高消息传输稳定性、增强用户界面友好性等方面。
1. 介绍即时通信系统的重要性和应用场景即时通信系统(Instant Messaging System,简称IMS)是现代通信技术的重要组成部分,其重要性和应用场景日益凸显。
在当前的数字化时代,即时通信系统已经成为人们日常生活和工作中不可或缺的一部分。
无论是在个人社交、企业沟通,还是在教育、医疗、金融等各个领域,即时通信系统的应用都发挥着重要的作用。
在个人社交方面,即时通信系统如微信、QQ、WhatsApp等已经成为人们日常沟通的主要工具。
通过即时通信系统,人们可以随时随地与朋友、家人保持联系,分享生活点滴,进行实时语音或视频通话,增进彼此的感情。
即时通信系统还提供了丰富的社交功能,如朋友圈、群组聊天、表情包等,使得人们的社交方式更加多样化、便捷化。
即时通讯系统的设计与实现毕业论文

毕业论文论文题目:即时通讯系统的设计与实现专业:计算机应用技术学院:计算机学院年级:学习形式:学号:论文作者:指导教师:职称:开题报告论文题目:姓名:_____________ 学号:________________ 学院:___________________ 开题报告正文应包含以下几方面的内容:1.1 论文选题的目的和意义近年来,随着Internet的飞速发展,计算机网络得到了越来越广泛的应用,并且已经逐步走进千家万户.自迈入信息时代以来,距离已经不再是人们之间联络沟通的障碍,也正因为如此,人们对沟通交流的需求和依赖也越来越强烈,各行各业对信息交流的要求也越来越高。
如今,通过各种即时通信软件,人们已经可以在足不出户的情况下,与远距离甚至世界各地的人进行实时的聊天交流,这样的交流不仅满足了人们对交流沟通的需求,同时也给人与人之间的交流带来了极大的便捷和大量的经济节省.因此,即时通信(Instant Messaging)在人们的生活工作和学习中得到了更广泛的应用。
目前,已经有不少即时通信软件在社会公众中流行,像MSN,腾讯QQ,新浪UC等,都是国内人们所熟知的知名流行即时通信软件,其技术方面也都处于国际领先水平。
同时,由于即时通信软件的便利,其应用已经由最初的简单的聊天交友得到了巨大的拓展。
适应各种场合的各式即时通信软件也开始出现在软件市场上,这就包括了一些与企业管理相关的即时通信软件,一个具有企业自己特色的集信息管理和即时通信为一体的内部应用软件,能够使一个企业或者团队更像一个整体,同时也能够给企业的管理和信息交流带来极大的便利,在一定程度上提高工作效率.同样的,对于软件设计与开发的行业来说,过去的那种仅适用于PC机上的应用程序的开发已经远远不能满足市场的多样化的需求,网络程序的广泛应用和广大需求使学习与掌握与网络相关的编程技术显得尤为重要。
本论文将结合一个具体的局域网即时通信系统的开发编写,以现有的各种技术,介绍讲解网络IM软件开发中的重要知识,并讨论其中关键环节的技术问题和各种解决方案和设计策略1.2 相关技术知识简介1。
即时通讯聊天系统 毕业设计

毕业设计(论文)题目即时通讯聊天系统姓名院系专业指导教师年月日即时通信聊天系统的设计与开发摘要互联网中的即时通讯聊天系统的研究已经成为了当今网络通讯技术发展的一个热点,局域网内的即时通讯聊天系统更是成为了当今社会通讯技术发前沿阵地。
局域网即时通讯软件的诞生不仅加强推动了企业工作效率的提高,为培训企业的教学带来了新的思路和手段,还为人们之间的交流创建了一种新型的、廉价的、快讯的、简便的工作方式,目前的即时通讯系统不仅仅是娱乐聊天的工具,更是影响着局域网内部的管理及其交流方式。
本系统采用客户机/服务器(C/S)模式,本系统开发环境是JAVA 6.0,遵循网络通讯技术基本数据传输协议TCP/IP协议,本课题的最基本的功能是通过计算机之间的文本数据的互换的形式实现思想的交流和沟通,优点是方便快捷。
关键词:数据传输,传输控制协议,服务器,客户端,C/S模式THE DESIGN AND IMPLEMENTATION OF THE INSTANTMESSAGING SYSTEMABSTRACTThe Internet chat of instant communication system has become the current network communication technology of the development of a hot, local area network of instant messaging chat system but also became today's society communication technology hair forward position. LAN instant messaging software birth not only strengthen promote the enterprise work efficiency, increase the enterprise training brings new ideas and teaching means, for communication among people created a new, cheap, flash, simple way of working, and at present instant communication system is not just entertainment chat of tools, but also influence the local area network management and its internal communication. The system USES the client/server (C/S) mode, this system development environment is JA V A 6.0, follow the network communication technology basic data transfer protocol TCP/IP protocol, the subject of the basic function of computer is through the exchange of data between text in the form of the implementation, exchange and communication, the advantage is convenient and quick.KEY WORDS: Data transmission, control protocol, server, client, C/S mode目录前言 (1)第1章系统的需求分析 (3)1.1 课题技术支持 (3)1.2 系统分析 (3)1.3 需求分析 (3)1.4 相关理论知识 (4)1.4.1 网络通信与网络协议基础 (4)1.4.2 TCP/IP协议族 (4)1.4.3 面向对象的开发过程 (5)1.4.4 开发工具 (6)1.4.5 运行环境 (6)1.4.6 开发方法的选择 (7)第2章系统的总体设计 (9)2.1 功能需求描述 (9)2.2 目标系统要求 (9)2.3 总体设计 (9)第3章系统主要功能模块设计 (12)3.1 课题分析 (12)3.1.1 系统协议 (12)3.1.2 系统核心技术 (12)3.2 客户端设计图例 (12)3.2.1 客户端流程图 (12)3.3 客户端功能介绍及实现 (14)3.3.1 客户端相关类的简介 (14)3.3.2 客户端的管理类类的简介 (20)3.3.3 辅助类或接口 (20)3.4 服务器设计图例 (21)3.4.1 服务器流程图 (21)3.5 服务器端功能介绍及实现 (22)3.5.1 服务器端相关类的简介 (23)3.5.2 服务器与客户端的数据传递原理 (24)3.6总结 (24)第4章系统测试 (26)4.1 课题测试 (26)4.2 测试类型简单介绍 (26)4.2.1 单元测试 (26)4.2.2 集成测试 (26)4.2.3 有效性测试 (27)4.2.4 系统测试 (27)4.3 测试过程 (27)4.3.1 登录测试 (27)4.3.2 注册测试 (27)4.3.3 聊天测试 (29)4.4 总结 (29)结论 (30)谢辞 (31)参考文献 (32)前言选题背景随着互联网技术的广泛普及和应用,通信和电子信息产业在全球迅猛发展起来,从而也带来了软件技术人才需求量的不断增加,软件技术教育和人才培养成为社会所关注的一项重要战略任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文论文题目:即时通讯系统的设计与实现专业:计算机应用技术学院:计算机学院年级:学习形式:学号:论文作者:指导教师:职称:开题报告论文题目::_____________ 学号:________________ 学院:___________________开题报告正文应包含以下几方面的容:1.1 论文选题的目的和意义近年来,随着Internet的飞速发展,计算机网络得到了越来越广泛的应用,并且已经逐步走进千家万户。
自迈入信息时代以来,距离已经不再是人们之间联络沟通的障碍,也正因为如此,人们对沟通交流的需求和依赖也越来越强烈,各行各业对信息交流的要求也越来越高。
如今,通过各种即时通信软件,人们已经可以在足不出户的情况下,与远距离甚至世界各地的人进行实时的聊天交流,这样的交流不仅满足了人们对交流沟通的需求,同时也给人与人之间的交流带来了极大的便捷和大量的经济节省。
因此,即时通信(Instant Messaging)在人们的生活工作和学习中得到了更广泛的应用。
目前,已经有不少即时通信软件在社会公众中流行,像MSN,腾讯QQ,新浪UC等,都是国人们所熟知的知名流行即时通信软件,其技术方面也都处于国际领先水平。
同时,由于即时通信软件的便利,其应用已经由最初的简单的聊天交友得到了巨大的拓展。
适应各种场合的各式即时通信软件也开始出现在软件市场上,这就包括了一些与企业管理相关的即时通信软件,一个具有企业自己特色的集信息管理和即时通信为一体的部应用软件,能够使一个企业或者团队更像一个整体,同时也能够给企业的管理和信息交流带来极大的便利,在一定程度上提高工作效率。
同样的,对于软件设计与开发的行业来说,过去的那种仅适用于PC机上的应用程序的开发已经远远不能满足市场的多样化的需求,网络程序的广泛应用和广大需求使学习与掌握与网络相关的编程技术显得尤为重要。
本论文将结合一个具体的局域网即时通信系统的开发编写,以现有的各种技术,介绍讲解网络IM软件开发中的重要知识,并讨论其中关键环节的技术问题和各种解决方案和设计策略1.2 相关技术知识简介1.2.1 基于SOCKET的网络编程SOCKET在英文中的意思是插座,在网络编程中,其实际意义可以理解为网络通信连接的插座,通常称之为套接字。
如果将网络连接的各终端类比为,则SOCKET即相当于线插座,为各终端提供或者创建与其他终端通信连接的桥梁或通道。
所有的终端都必须接通此“插座”来完成与其他终端的连接或通信,否则,它将独立于网络之外。
由此可以知道知道,SOCKET是终端间建立连接的核心对象。
那么,对于一个SOCKET对象,它到底具备什么样的功能呢?通常,用WINSOCK库来创建和使用SOCKET,运用WINSOCK库的基本API,就可以实现简单的数据输入和输出(即发送数据和接受数据)。
在创建一个SOCKET对象后,通过指定IP地址来确定该SOCKET与哪台机器发生交流,通过指定机器端口号(一般为1024以上)确定与该机器上哪个应用程序进行交流。
在确定了交流对象后,便可以使用SOCKET与对象机器上的应用程序进行数据的传输和信息的交流。
在面向连接的网络通信中,还必须使用SOCKET进行连接的监听和创建,只有创建了稳定的连接后,才开始进行数据的传输。
由于交互方式的不同,SOCKET也分为两种,一种是无连接的数据报形式的,一种则是面向连接的流式套接字,这也是接下来两小节要阐述的容。
1.2.2 UDP协议与TCP协议的简单介绍UDP协议是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。
这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。
UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地,其过程可以比做投递信件,它只关心信件确实投放到信箱,至于对方是否正确、按时收到信件,UDP并不关心。
尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP 完全不同的服务。
TCP提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。
这一过程与打很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁并与之开始对话。
1.2.3 WINSOCK套接字API调用的简单流程本论文所要讨论的即时通信系统则是通过WINSOCK库的应用来设计和实现基于TCP的C/S结构的网络即时通信程序。
这里,用图的方式简单的表示出对WINSOCK库提供的API函数调用过程。
面向连接的流方式调用过程如图1-1所示。
图1-1 面向连接的流式通信过程面向无连接的数据报方式的调用过程如图1-2所示图1-2 面向无连接的数据报过程从图中可以看出,面向连接的流方式更能适应C/S 结构系统的非对称结构的实现。
1.3 论文的主要工作与章节安排本论文旨在设计一个面向企业部的功能实用、性能良好的即时通信系统,并对其中关键模块做详细的分析和实现的说明。
在系统的设计和实现中,要突出系SERVER 端统的模块化,各模块间相对独立,通过模块间的接口交互工作,使整个系统层次、模块清晰。
在数据传输方面,要注意数据的封装,使数据尽可能结构化,保持良好的一致性。
根据上述要求,论文中详细阐述了系统的设计方案和关键模块的的实现方法,主要工作如下:(1)在确定系统结构后,根据系统相关需求妄称对系统功能的设计和分析,并对应系统功能做出用户信息数据的设计,详细说明数据库表项的设计。
(2)对CLIENT与SERVER端的通信协议做详细的设计,并对协议数据包的结构的定义做出详细的阐释。
(3)对系统中网络传输模块的设计做详细的说明,阐述网络传输模块在系统中的工作流程以及该模块的实现方案。
(4)结合系统整体结构,说明系统在功能实现上的逻辑处理过程(选择最主要的功能如登陆认证和聊天消息收发),并展示系统部分功能实现后的运行结果。
按照上述的工作容叙述,本论文共分5章来分别阐述有关问题,各章节安排如下:第一章介绍论文背景、项目的意义、项目相关技术知识以及论文主要工作。
第二章对系统结构的分析做简单的介绍,针对系统的定性对其功能做详细的设计和分析,并设计出与系统功能相关的数据信息容。
第三章详细介绍C/S系统中CLIENT与SERVER端之间的通信协议,并说明在系统实现过程中,该数据包结构以及部分协议容定义。
第四章设计并分析系统中的核心模块——网络传输管理模块,对模块中重点对象的设计做详细的说明,并介绍该模块的实现策略,以及其在系统中的工作流程。
第五章介绍系统整体的结构模型,包含系统中各个模块中的对象,说明系统实现关键功能即登陆认证、聊天消息收发等的逻辑处理流程。
并展示系统运行过程中的部分截图。
2 系统的结构与功能设计2.1 系统结构的选择和设计2.1.1 系统通讯模式的选择在前面,已经分别介绍了基于UDP和TCP的两种即时通信系统的基本模式。
在两者相比之下,由于TCP协议能够很好的提供数据传输的可靠性,并在面向连接的环境下提供更丰富的网络通信服务。
而且,在面向连接的环境下,更有利于对网络应用终端的实时管理,为使用客户提供更加便捷可靠的网络服务。
所以,在网络通信模式上,倾向于基于TCP的面向连接的流式通讯模式。
2.1.2 集中式与分布式系统概述在目前的网络通信系统中,对于连接节点的管理有集中式和分布式两种管理模式。
对于集中式的管理模式,系统的数据存储和管理以及各功能在网络连接上的对应操作,都集中在网络管理节点上进行处理和实现,即由单一服务器来完成网络数据的集中管理。
集中式网络管理模式最大的优点就是便于集中管理各端连接,易于实现,维护工作较为简单。
但是,由于管理信息全部集中汇总到管理节点上,这就使得在通信高峰期会造成信息流拥挤,这对管理节点处的机器处理效率有很高的要求。
另外,由于所有的信息管理都依靠于一台服务器,当管理节点发生故障时,整个网络系统都将停止工作。
分布式管理模式,则是将网络管理客户机与一组服务器进行交互作用,由多个服务终端来共同协作完成对网络信息的管理。
由于有多个服务端协同工作,集中式容易造成信息流拥挤、服务器负荷太大的问题可以得到很好的解决。
同时,在多服务器的环境下,服务端之间的分工设计可以由设计人员灵活设计,系统的可伸缩性,扩展性也较为良好。
一般来说,采用的较多的则是多层管理或者服务器集群等技术方式。
2.1.3 系统的结构设计本论文所要讨论的系统是一个供中小型企业部使用的带有简单人事管理功能的局域网即时通信系统,由于要存储并管理用户相关信息的数据,同时要限制普通用户对数据信息的管理权限,比较合适的设计是采用C/S模式的系统架构,数据由数据库进行存储,由服务器对数据库进行直接操作,而客户端则通过对服务器发出请求得到相应的数据或者告知服务器对数据库进行何种操作。
为了确保数据正确可靠地传输,系统采用面向连接的TCP协议作为数据传输模式。
通过上一小节对集中式网络管理和分布式网络管理的简单介绍,已经对两种管理模式有了初步的了解,可以看出,在对于功能繁琐多样,客户终端数量庞大的系统,分布式系统能够很好的减轻单个服务器的负载,以提高服务器管理网络连接的效率,为用户提供稳定而流畅的网络服务。
而对于本系统,由于定性为面向中小型企业,且是基于局域网部的小型即时通信服务系统,其同时连接的客户终端本身极其有限,另外,本系统的功能也是集中针对于用户信息的管理和简单的实时通信交流,在这样的情况下,选择分布式系统则显得有些大材小用,并可能会造成开发成本上的浪费,而选择集中式管理模式则更有利于集中管理和系统的简化,同时,单一服务器的结构也相对于多服务器的结构更容易进行维护工作。
综上所述,本论文要论述的系统系统将使用基于TCP的集中式管理的C/S 结构模型。
在这个结构中,所有的数据信息都将由一个服务器程序进行统一的管理,对数据信息容的各种相关操作也只能由服务器程序直接进行完成。
客户端要获得数据信息或完成某操作,必须通过服务器的验证,正确建立连接后,向服务器发送请求,服务器则根据客户端的请求代劳完成对数据信息的相应操作并向客户端回馈数据信息。
图2-1表示了系统大大体层次和结构模型。
图2-1 基于TCP的集中式C/S系统结构2.2 系统功能设计本系统的使用对象为中小型企业,拟订要完成的主要功能为实时聊天会话功能,以及与之伴随的用户信息管理,并包括网络即时通信的相关通行功能。
在扩展方面还应当加入固定群组会话与临时会话组等功能,进阶功能还包括文件传输,语音、视频对话等高阶功能。
2.2.1 系统网络连接功能设计对于一个网络即时通信系统而言,由于本系统采用基于TCP的集中式C/S 结构,必须具备一些与网络连接相关的通用功能,无论系统的最终用途是什么,这些功能都是必不可少的,其中包括:(1)客户端登陆验证功能此功能用于用户使用客户端于服务器建立稳定连接,成功登陆是用户使用系统的先行条件。