网络编程实验报告

网络编程实验报告

ID:33845565

大小:115.50 KB

页数:5页

时间:2019-03-01

网络编程实验报告_第1页
网络编程实验报告_第2页
网络编程实验报告_第3页
网络编程实验报告_第4页
网络编程实验报告_第5页
资源描述:

《网络编程实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【实验目的】掌握基于多线程并发服务器的基本设计框架和实现方法。【实验性质】综合性实验【实验器材与所需软件】计算机、交换机、windows操作系统、java集成开发环境【实验学时】8学时【实验内容】实现一个多线程并发服务器(服务器功能自选),要求该服务器可以体现出同时为多个客户端服务的特性。【实验过程与步骤】实验设计并实现了一个基于多线程并发服务器的网络聊天室工具。1,需求分析:工具采用了Client/Server结构,将聊天室划分为两个子程序:客户端子程序、服务器端子程序。网络聊天室客户端程序服务器端l客户端程序:实现客户端与服务器端进行连接,并可与服务器端进行实时通讯。l服务器端:实现建立

2、与多个客户端程序之间的连接,管理连接并能够通过多线程技术同时与多个客户端进行实时通讯。2,系统设计:系统的设计中,客户端与服务器端的连接,通过TCP/IP网络建立,并依托Socket进行实时通讯。系统中,各个模块之间的关系如下图所示:客户端程序客户端程序客户端程序客户端程序TCP/IP网络服务器上图中,显示同一服务器,通过网络可以同时与多个客户端程序建立连接并实现实时通讯功能,通讯流程如下图所示:Socket()Listen()Accept()Read()Write()Close()Socket()Connect()Write()Read()Close()服务器客户端根据图示,客户端与服务器

3、之间通过Socket()进行实时通讯,通讯步骤是:服务器监听、客户端发出请求、服务器接受、建立连接、交互通讯、关闭连接。另外,由于聊天室工具必须实现多客户端同时连接通讯的要求,因此,在服务器端设计时考虑采用多线程技术,每个服务器拥有多个服务线程,每个线程负责与一个客户端进行连接通讯,从而达到一个服务器同时与多个客户端并发通讯的效果。3,系统实现:在网络聊天室的最终实现时,设计服务器类、服务器线程类、客户端类以及系统界面类:l服务器类ClassServer:主要负责管理系统中的服务器线程,通过线程管理与客户端之间的连接及通讯,是服务器的主要管理端。l服务器线程类ClassServerThrea

4、d:线程类中,实现了具体的服务器与客户端之间一一对应的连接关系,并通过Socket与客户端进行实时通讯。l客户端类ClassClient:客户端类是通讯中的另一个主体,主要负责申请与服务器的连接,实现客户与服务器的交互。l系统界面类ClassFace:系统界面类是系统的主类,封装了系统的主程序。Face类是直接与用户交互的,通过获取用户的需求,分别调用Server类或是Client类,是网络聊天室的直接主体。【实验结果或结论】网络聊天室主界面的运行效果如下图所示:如上图所示,系统运行之后,自动获取主机的IP地址并显示在界面中的地址栏中,然后用户可以根据自己的需求设置端口号,点击服务器按钮之后

5、,工具即成为聊天室服务器:在建立服务器之后,用户可在另一个界面中,输入服务器IP地址、端口号,并点击客户端按钮发起连接申请:连线成功之后,客户端和服务器端就可以开始实时通讯,通讯效果图如下图所示:【实验中遇见的问题及其解决方案】在最初实现多客户端与服务器同时进行实时通讯时,发现所有客户端发出的信息服务器都能很好的在一时间收到,但是服务器发出的信息只有最近一个连接到服务器的客户端才能收到,经过研究分析发现通过TCP/IP网络建立的Socket连接,只能实现一一对应的通讯,也就是在新的客户端建立连接时,服务器与之前客户端建立的连接已经中断,因此发出的信息只有最近连接的客户端才能收到。因此,在原有

6、设计的基础上,引入了多线程技术,在服务器端建立服务器线程池,每个线程都与客户端建立一一对应的连接,确保了服务器的信息第一时间发送到所有连接的客户端中。【实验总结与收获】通过本次试验,掌握了多线程并发服务器的设计思想,通过自己动手设计并实现的网络聊天室小工具,大大增强了自己的动手能力。同时,通过实验,进一步熟悉了JAVA开发环境。为了实现系统功能,深入研究了Socket基本原理及使用方法,积累了一定的JAVA语言网络编程经验。在系统的实现中,也遇到了种种问题,在对各种问题的排查之中,增加了自己对系统程序的测试能力。在发现问题、解决问题的过程中,大大增强了自己对使用的编程语言、网络技术相关知识理

7、解与认识,为今后从事相关工作垫下了坚实的基础。【实验作业】简述线程池的基本原理。线程池的引入,主要是减少系统频繁的执行创建线程、销毁线程的操作,从而提高系统资源利用率,大大提高系统运行效率。一个线程池包括以下四个基本组成部分:①线程池管理器(ThreadPool):用于创建并管理线程池,包括创建线程池,销毁线程池,添加新任务;②工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。