欢迎来到天天文库
浏览记录
ID:39636819
大小:461.03 KB
页数:17页
时间:2019-07-07
《共享参数的多线程编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、哈尔滨理工大学课 程 设 计题 目: 共享参数的多线程编程(网络安全课程设计)院、 系:计算机科学与技术学院网络工程系班级:学号:姓 名:同组成员:指导教师:成绩:2014年06月27日1111一.系统设计的目标1.了解并掌握C/S模式下TCP的连接以及并发服务器的实现。2.了解并掌握多线程在实现共享参数方面的方法。3.掌握共享参数多线程编程。二.系统原理:实验环境:Ubuntu12.04系统,GCC编译器1).建立套接字并在某一约定端口上等待接收客户请求;2).当接收到来自客户端的服务请求后:建立一新线程来处理
2、,同时主线程继续等待其他客户连接。当新线程处理完成后,关闭新线程与客户的通信链路并终止新线程。3).关闭服务器。图2-1工作过程三.系统功能分析:1.C/S结构介绍C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。15(Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再
3、将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。C/S模式下TCP方式服务器程序流程(多进程):1程序初始化2填写本机地址信息3绑定并监听一个固定的端口4收到Client的连接后建立一个socket连接5产生一个新的线程与Client进行通信和信息处理6子通信结束后中断与Client的连接客户端程序流程:1程序初始化2填写服务器地址信息3连接服务器4与服务器通信和信息处理5通信结束后断开连接 152.套接字技术所谓sock
4、et通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子
5、类完成的。3.多线程并发服务器的实现线程,有时被称为轻量级进程(LightweightProcess,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了
6、处理机与外围设备并行工作的能力。线程1客户端1服务器线程2客户端2线程n客户端n图3-3-1实现模型基于多线程的Linux系统下并发服务器能够同时并有效地运行多个任务。采用这种并发系统结构,既增加了服务器程序的功能,又提高了其性能。只有一个处理器时,多个线程不能真正地并行执行。然而,经过固定的时间间隔或当一个线程处于等待状态时,就可从一个线程切换到另一线程,实现多个线程重叠执行。在有多个CPU的计算机上,如果底层系统支持,则多个线程可真正地被并行执行,服务的并行性潜力得以开发。15四.系统实现:下面我们通过一个具体的
7、实例来说明多线程并发服务器的具体实现:服务器端:循环等候客户连接请求一旦有客户连接请求开启一个子线程接受并处理客户请求连接成功后向客户发送欢迎信息,接着接受来自客户的信息,然后将客户信息反转后再返回给客户端主线程继续等待其他客户请求服务器具有同时处理多个用户的能力;客户端:首先与服务器建立连接,接着接收用户输入的客户名字,将名字发给服务器;然后向服务器发送数据,进行交互,接受服务器的反馈信息并显示之后继续等待用户输入直至用户输入ctrl+c结束通信客户端接到输入ctrl+c后客户端关闭连接并退出。实验截图客户端在命令
8、行中应输入欲连接服务器的IP地址或域名,如图4-1所示。图4-1客户端请求连接15用户给出客户端名称,服务器端显示,如图所示,服务器端通过用户名来显示信息的来源,并对信息进行处理返回客户端,客户端在屏幕输出,如图4-2图4-2.服务器显示客户端IP,服务器接受数据并处理15图4-3图4-3客户1发送数据并得到回显15图4-4图4-4.客户2发送
此文档下载收益归作者所有