务的请求,也就是说,服务进程直处于休眠状态,直到个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被惊醒并且为客户提供服务对客户的请求作出适当的反应。为了方便这种模型的网络编程,年代初,由联合了其他几家公司共同制定了套下的网络编程接口,即规范,它不是种网络协议,而是套开放的支持多种协议的下的网络编程接口。现在的已经基本上实现了与协议无关,你可以使用来调用多种协议的功能,但较常使用的是协议。实际在计算机中提供了个通信端口,可以通过这个端口与任何个具有接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个接口来实现。如下图所示图面向连接的套接字的系统调用图局域网聊天系统微软为定义了类如类和派生于的类,它们简单易用,我们当然可以使用这些类来实现自己的网络程序,但是为了更好的了解编程技术,本设计中将使用底层的函数实现平台的即时通信工具。在中进行的编程开发的时候,需要在项目中使用下面的三个文件,否则会出现编译。这是的头文件,需要包含在项目中。连接库文件。的动态连接库,位于的安装目录下。多线程编程技术进程及线程概述进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间代码数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。线程是进程内部的个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说或函数,将程序的启动点提供给系统。主执行线程终止了,进程也就随之终止。每个进程至少有个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同个进程中。个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。多线程可以实现并行处理,避免了项任务长时间占用时间。要说明的点是,目前大多数的计算机都是单处理器的,为了运行所有这些线程,操作系统为每个独立线程安排些时间,操作系统以轮换方式向线程提供时间片,这就给人种假象,好象这些线程都在同时运行。由此可见,如果两个非常活跃的线程为了抢夺对的控制权,在线程切换时会消耗很多的资源,反而会降低系统的性能。这点在多线程编程时应该注意。函数支持进行多线程的程序设计,并提供了操作系统原理中的局域网聊天系统各种同步互斥和临界区等操作。中,使用类库也实现了多线程的程序设计,使得多线程编程更加方便。对多线程编程的支持提供了系列的函数来完成线程的创建挂起恢复终结以及通信等工作。下面将选取其中的些重要函数进行说明。从服务器端发送到客户端的在线用户列表信息结构传输到线程的信息结构体客户端存储接口套接字存储窗口句柄服务器端存储接口套接字存储窗口句柄存储用于判断是否退出线程循环存储在线用户单向链表的头指针注线程函数为静态函数,无法调用成员变量和成员函数,所以需要将需要的数据传送进去。用户界面设计在能够完全满足软件所需功能,设计界面要清爽操作要简单易懂的基本原则下,本软件的界面设计如下服务器端显示界面局域网聊天系统图服务器端界面图客户端显示界面图客户端显示界面详细设计及编码实现主框架及用户界面模块详细设计局域网聊天系统主框架模块由两个类构成类和类。类结构如下图服务器端主框架模块图其中前面为红色方块的为类成员函数,浅蓝色方块的为类成员数据。类为应用程序主框架类,它在后台完成了个基于的应用程序的所有基本的初始化工作,如果用户需要在程序的初始化时加入些自定义的操作,只需在其中的函数中加入就可以了。在本程序中,只需要将的网络初始化工作完成。代码为,在每个基于的程序中,它都是通过个由全局对象启动整个初始化过程的机制,因为根据的设计,个全局对象的生成即其构造函数的调用要先于程序的入口函数。所以,在这个对象的构造函数中可以做很多准备工作,这个对象就是程序主框架类的对象,具体到本程序中,即是上面讲到的类。局域网聊天系统服务端线程的具体作就是首先创建个,然后将该套接字绑定到本地主机的个固定的端口上,在本程序中选择了端口。接着将该套接字设置为异步非阻塞模式,并为它注册各种网络异步事件,最后开始监听。网络扫描模块详细设图网络扫描示意图信息发送模块详细设计局域网聊天系统填充结构体获得列表框中的用户发送消息发送消息所有人密语请选择对方,图信息发送模块流程图局域网聊天系统信息接收模块详细设计图信息接收模块流程图以上即各个模块的详细设计的主要实现过程。测试用二台机器通过集线器构成个局域网,进行正确的网络配置,三台机器上都安装了操作系统,经过测试可正常运行。局域网聊天系统结论在当今电脑网络密布的世界当中,个简单高效的局域网通信工具是如此的具有实用性,所以我们应当重视对它的相关研究与开发。在这次的毕业设计中,我应用了开发工具在平台上开发了个基于平台的局域网通信工具,在这重要的领域进行了相关的实践,不管是对我的研究能力,还是实际动手能力,还是资料查阅能力,都起了相当大的益处。通过此次毕业设计,我了解了进程间通讯的两种基本方法共享内存和消息,在实例中具体体会到了共享内存和消息的使用方法。所以,我决定认真总结这次毕业设计的经验,以及学习到的知识,来更加的充实自己的头脑和完善自己的知识结构。另外,我也在这次设计中看到了自己的许多不足之处,由于初次接触到语言类问题,很多步骤都是自己临时学习,大大影响了系统的开发进度。既然设计已经完成,论文也写到结论的地方,我希望自己能以个良好的心态顺利毕业,走向社会。局域网聊天系统致谢首先要感谢陈琳老师,是她在整个毕业设计过程中给我提供了毕业设计所需要的资料,帮助解答毕业设计中遇到的问题。其次要感谢电科实验室的老师们,是他们毕业设计中为我准备好了毕业设计的工作环境,在翻译版图的整个过程中给予了我指导,再次是要感谢和我起做毕业设计的同学们,正是有了他们,我们才在遇到问题时,相互鼓励,最终解决了问题,圆满地完成了毕业设计的各项工作。局域网聊天系统参该函数在其调用进程的进程空间里创建个新的线程,并返回已建线程的句柄。该函数用于挂起指定的线程,如果函数执行成功,则线程的执行被终止。该函数用于结束线程的挂起状态,执行线程。该函数用于线程终结自身的执行,主要在线程的执行函数中被调用。其中参数用来设置线程的退出码。般情况下,线程运行结束之后,线程函数正常返回,但是应用程序可以调用强行终止线程的执行。使用终止个线程的执行是不安全的,可能会引起系统不稳定虽然该函数立即终止线程的执行,但并不释放线程所占用的资源。因此,般不建议使用该函数。该函数将条消息放入到指定线程的消息队列中,并且不等到消息被该线程局域网聊天系统处理时便返回。调用该函数时,如果即将接收消息的线程没有创建消息循环,则该函数执行失败。总体设计体系结构设计通常的通信工具,都采用客户机服务器体系结构,结构是这样的种结构它包括个客户机或前端,个服务器或称后端,客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。有时,可能有多个客户向同个服务器同时请求服务,这就需要服务器决定怎样处理这些请求。结构是当前数据库应用程序中极为流行的种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。模型最终可归结为种请求应答关系。个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。在客户发出个请求之前,服务进程直处于休眠状态。个客户提出请求后,服务进程被唤醒并且为客户提供服务,对客户的请求做出所需要的应答。如下图所示图客户机服务器通信结构示图局域网聊天系统在客户端启动后,客户端计算得到本地网络的广播地址,进行广播查找服务器端,服务器接收到客户端的广播信息后返回服务器地址,则客户端接收验证信息并记录服务器端地址,然后客户端启动定时期,定时发送信息到服务器,以告知服务器自己在线,然后服务器返回在线用户列表,服务器依靠客户端发送的信息来更新维护在线用户列表。在客户端与服务器尽心数据交换,拥有了在线用户列表后,就可以选择进行客户端之间的点对点信息交流了。如果服务器不在线,则客户端会提示用户退出,在定的时间后自动退出。功能模块划分根据以上的系统需求分析,以及体系结构设计,可以对系统进行如下的功能模块划分如下图所示。图功能模块图其中主线程模块完成对网络的初始化,然后启动两个子线程服务端监听线程以及网络扫描模块线程,然后由网络扫描模块得到当前的网络用户分布情况,并填充相关的数据结构,然后生成用户列表界面显示给用户。通信模块又包括两个子模块数据接收模块和数据发送模块,这两个模块都由系统定义的网络事件来触发。输入输出模块用来响应用户双击用户列表的项要准备发送信息时的消息,以及当系统接收到个网络用户发送来的消息,要将其显示给用户的时候。网络扫描模块是由主线程模块启动,进行网络扫描,确定哪些用户当前处于可到达状态,以及哪些可到达状态的用户安装有相应的通信软件,并启动之可以与之进行通信。局域网聊天系统数据结构设计在线用户信息结构体存储用于判断次是否更新过,未更新则从单向链表中删除下个存储单元的地址,最后个为注用于构建服务器端的在线用户单向链表。是解决此矛盾的种方法。然而,从企业运行的成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加企业的负担。我在本文中将讨论种基于的局域网通信工具的设计与实现方法。基于的局域网通信软件可以为企业原有的局域网提供种良好,安全,快速的通信机制。它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。基于的局域网聊天工具是此类局域网通信软件的具体实例之,它很好地诠释了通信的原理,并且在企业内部通信教学讨论等应用中都具有定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。基于的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有广泛的应用前景。课题现状基于局域网的即时通信工具,实际上是互联网即时通信工具的个小规模版本,广域网上的即时通信工具,如今般采用或者协议体系来实现,开发技术已经比较成熟,比如较早的通这些国外开局域网聊天系统发的产品,还有
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 27 页
第 2 页 / 共 27 页
第 3 页 / 共 27 页
第 4 页 / 共 27 页
第 5 页 / 共 27 页
第 6 页 / 共 27 页
第 7 页 / 共 27 页
第 8 页 / 共 27 页
第 9 页 / 共 27 页
第 10 页 / 共 27 页
第 11 页 / 共 27 页
第 12 页 / 共 27 页
第 13 页 / 共 27 页
第 14 页 / 共 27 页
第 15 页 / 共 27 页
预览结束,还剩
12 页未读
阅读全文需用电脑访问
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。