ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:152.30KB ,
资源ID:7611278      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7611278.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于socket的网络聊天室.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于socket的网络聊天室.docx

1、基于socket的网络聊天室JAVA程序设计课程设计报告院 系 题 目 基于socket 的Client/Server监听模式 学生姓名 学生学号 专业班级 指导教师 完成时间 (空2行)1 需求分析 12 系统设计 Y2.1 界面模块设计 Y2.2 用户客户端登录验证设计 Y2.3服务器模块设计 Y2.4客户端模块设计 Y2.5数据传输加密设计 Y3 实现 Y3.1 界面模块实现 Y3.2 用户客户端登录验证实现 Y3.3服务器模块实现 Y3.4客户端模块实现 Y3.5 数据传输加密实现 YX (正文第X章) Y结论 Y参考文献Y附录A 源代码 (必须) Y正文部分:1 需求分析现在网络通信

2、应用的很广泛,几乎所有应用都基于网络实现通信。而要实现异地的网络通信,尤其是C/S结构的软件,使用套接字的网络编程是实现双方通信的基础。本课程设计就是基于Java TCP客户端和服务器、UDP组播实现的群聊。11 基本功能需求以下三点是本课程设计的基础功能实现,即要完成基本的客户端-服务器的连接通信。性能及其他创新点可以自行实现。1.1.1有客户端和服务器,服务器负责客户端之间的通信(采用C/S模式,即Client/Server监听模式)。1.1.2客户端A对文件进行加密,经过服务器,把密文发送给客户端B(具体加密算法,方式自定)。1.1.3客户端B接收来自客户端A的密文,对客户端A传送过来的

3、文件解密,还原成明文。12 扩展功能需求以下是本课程设计的扩展功能实现,即在完成基本功能需求的基础上,可以尝试完成以下功能。1.2.1 提供客户端用户注册功能。用户使用客户端前,需要先进行注册,才能登录使用。用户的注册信息(登录帐号和密码)使用MySQL数据库进行持久化存储。1.2.2 客户端A可以将加密数据,经过服务器,传输到多个客户端。此处要求使用UDP协议。基于UDP的特性,可以选择适当的广播通信方式,此处最好使用UDP组播,即凡是加入到“同一个多播组”中的用户,均可以接收到数据,实现数据的高效传输。13 性能优化需求以下则是对性能方面的改进,使得整体具有更好的性能。简而言之,就是在不影

4、响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。1.3.1 用客户端和服务器实现TCP通信时,服务器负责客户端之间的通信,服务器套接字在始终监听这端口,等待客户端的连接,一旦有客户端来连接,为该客户端启动一个线程,去单独处理这个客户端的通信聊天,服务器不堵塞,可以继续接收其他用户的连接;单独创建线程会延迟较大,可以引入线程池,创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能,从而优化性能速度。1.3.2 因为本课程设计是使用图形用户界面的基于socket 的Client/Serve

5、r监听模式,实现网络通信。对客户端而言,不仅要构造(初始化)用户界面,还要初始化网络模块,创建客户端套接字,实现对单一服务器(固定IP地址)的连接,在整体响应效果上,会有“延迟”和“卡顿”,可以采用多线程技术,将加载耗时,初始化不安全的模块移除主线程,使得响应速度更快。2 系统设计(作为正文第2章标题,用小3号黑体,加粗,并留出上下间距为:段前0.5行,段后0.5行)软件的整体设计,以需求规格说明书为输入,以产生满足功能需求和非功能需求的设计方案为输出。本课程设计则是采用基于socket 的Client/Server监听模式。首先必须满足用户功能需求,软件系统能够在用户给定的环境下有效运行,设

6、计出具有可行性、易维护的软件系统。客户端/服务器范型把软件分为两类-客户端程序和服务器程序。客户端软件启动一个连接并发送请求,而服务器软件监听连接并处理请求。在UDP编程环境中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收请求。在TCP环境中,两台计算机之间建立了连接,客户端/服务器范型是相对应的。系统整体结构图如下:系统整体结构图21 界面模块设计 界面是用户与软件系统之间传递和交换信息的媒介和窗口;对软件的人机交互、操作逻辑、界面美观的整体设计,不仅是让软件变得有个性有品味,还可以让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点,使软件系统更人性化,更灵活

7、。本例中采用模仿QQ登录的界面,服务器和客户端都采用一样的,不同的是,客户端登录界面通过一个“用户注册”接口。采用JFrame去边框化。如下图:22 用户客户端登录验证登录验证模块,则需要连接数据库,验证当前登录用户是否已注册;对已注册的用户进行用户密码匹配验证;对未注册的用户,要提示用户进行注册帐号。登录验证模块,则需要一个Java类DbUtil,负责处理,里面定义关于数据库操作,取用户表中的记录进行匹配查询。23 服务器模块设计服务器模块,是本课程设计实现socket 的Client/Server监听模式的非常重要的一步。因为使用TCP套接字编程可以实现基于TCP/IP协议的面向连接的通信

8、,它分为服务器端和客户端两部分,而服务器负责客户端之间的通信。服务器端程序调用ServerSocket类中的accept()方法等待客户端的连接请求,一旦accept()接收了客户端连接请求,该方法返回一个与该客户端建立了专线连接的Socket对象,不用程序去创建这个Socket对象。建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象。服务器设计要点:1、TCP服务器程序要想接收多个客户端连接需要循环调用ServerSocket.

9、accept()方法。2、服务器程序与每个客户端连接的会话过程不能互相影响,需要在独立的线程中运行,因此需要设计一个线程类。3、一个线程服务对象与一个服务器端Socket对象相关联,共同来完成与一个客户端的会话。用一个线程,单独地处理一个用户客户端的聊天数据的传输,各个用户互不干扰。4、服务器端,不应有static 静态的属性,因为服务器是所有连接的客户端所共享的。5、服务器端先运行,否则客户端会因为无法连接服务器端而产生错误。服务器一直在监听。然后客户端开始运行,并且请求连接服务器(TCP的连接是不需要用户名和密码的),连接成功后,发送数据。TCP服务器与客户端间的数据传输示意图:创建一个T

10、CP服务器端程序的步骤(1)创建一个ServerSocket(2)从ServerSocket接受客户连接请求(3)创建一个服务线程处理新的连接(4)在服务线程中,从socket中获得I/O流(5)对I/O流进行读写操作,完成与客户的交互(6)关闭I/O流(7)关闭Socket24 客户端模块设计客户端设计要点:1、客户根据提供的IP地址连接到相应的服务器;2、服务器等待客户的连接,一旦连接成功,与该客户端建立了专线连接的Socket对象;3、客户接收服务器发送的信息并显示。客户端-“聊天”UI设计如下:创建一个TCP客户端程序的步骤(1)创建Socket(2)获得I/O流(3)对I/O流进行读

11、写操作(4)关闭I/O流(5)关闭Socket25 数据传输加密设计3 实现1. 用户登录,在线用户注册。2.客户端与服务器的TCP连接,实现消息的发送与接受3.Java Swing与多线程编程技巧31 界面模块实现32 用户客户端登录实现33 服务器模块实现服务端:1、创建服务端ServerSocket, 绑定指定端口号ServerSocket serverSocket = new ServerSocket(9999);2、阻塞, 服务端等待接收客户端请求Socket socket = serverSocket.accept();3、获取服务端输入流, 可以读取客户端写出的数据InputSt

12、ream in = socket.getInputStream();4、获取服务端输出流, 可以写出数据到客户端OutputStream out = socket.getOutputStream();5、服务端写出数据到客户端out.write(欢迎拨打传智播客报名热线, 请问需要什么帮助?.getBytes();6、服务端读取客户端写出的数据. 如果客户端还未写出, 阻塞等待.byte buffer = new byte1024;int len = in.read(buffer);String msg = new String(buffer, 0, len);System.out.print

13、ln(msg);7、释放资源socket.close();serverSocket.close();34 客户端模块实现客户端:1、创建客户端Socket, 指定服务端地址和端口, 连接服务器. 本地地址和端口自动绑定.Socket socket = new Socket(192.168.1.254, 9999);2、获取客户端输入流, 可以读取服务端写出的数据InputStream in = socket.getInputStream();3、获取客户端输出流, 可以写出数据到服务端OutputStream out = socket.getOutputStream();4、客户端读取服务端写

14、出的数据. 如果服务端还未写出, 阻塞等待byte buffer = new byte1024;int len = in.read(buffer);String msg = new String(buffer, 0, len);System.out.println(msg);5、客户端写出数据到服务端out.write(我要报名JavaEE就业班!.getBytes();6、释放资源socket.close();35 数据传输加密实现(空2行) 总 结(小3号黑体,居中)(小4号宋体,1.5倍行距)(空2行) 参 考 文 献(小3号黑体,居中)1 胡曰利,吴晓芙.林木生长与养分动态模型研究V杉木林曲线1.中南林学院学报,1999,19(4):1-72 曾思齐,欧阳君祥. 马尾松低质低效次生林分类技术研究.J.中南林学院学报,2002,22(2):12-163 华罗庚,王元.论一致分布与近似分析.中国科学,1973(4):3393574 赵杰,李涛,朱慧. SQL Server数据库管理、设计与实现教程.北京:清华大学出版社,2004.035 评分表:课题名称指导教师评 语成绩评定姓 名成 绩学 号日期年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1