




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、命属猎技上学XfAN UNIVERSITY OF SCIENCE AND TECHNOLOGYJAVA网络编程文本传输学院:通信与信息工程班级:电子商务1002班姓名:王鹏飞学号:1007100222JAVA网络聊天室功能描述网络聊天室是一种应用广泛网络聊天方式, 操作简单,功能丰富,是教学和 学习面向对象的编程思想的理想项目。可以使用多种编程语言设计和开发出功能 完善的网络聊天室。本系统采用C/S架构设计,用JAVA语言设计和实现,整个项目分为服务器 端和客户端。使用了最新的JAVASE标准Swing组件,开发出简洁美观布局合理 的客户端和服务器界面;利用 Socket网络开发技术实现客户端
2、和服务器端的连 接访问,实现网络通信功能;通过对数据流合理的封装,实现信息发送和接受。 同时,采用多线程、多任务的设计思想,令服务器性能稳定,客户端通信流畅, 基本实现聊天室的功能。服务器端功能:服务器的基本功能有:启动服务器,关闭服务器,监听客户端连接请求,显 示在线用户,显示客户端连接信息,发送系统消息等。服务器端功能描述:1 .启动服务器:客户在运行服务端程序后,点击启动服务器,服务器程序创建并箭筒特定端口的ServerSocket并启动一个主线程,等待客户端的连接,如果有客户端连接,服务器向工作线程队列中加入与客户通信的任务,工作线程不断从工作线程中取出任务并执行。同时在服务器消息面板
3、中显示,服务器启动成功。2 .关闭服务器:服务器关闭时,向所有连接的客户端发送消息,告知将服务器 关闭,同时关闭socket,之后服务器界面关闭3 .监听客户端请求:服务器在启动后一直监听客户端的运行情况,比如有新用 户登录,用户退出等。4 .显示在线用户:用户登录后即客户端与服务器连接成功,服务器端用户列表 界面显示出所有登录用户的用户名,用户退出后服务器更新用户列表5 .显示用户连接信息:用户在登录成功后,服务器端服务信息界面显示用户登 录的信息,包括客户端IP地址,端口号。6 .发送系统消息:可以从服务器端广播系统消息,该消息会发送给所有连接的 客户端,此功能可用于服务器管理者向所有用户
4、发送重要的系统消息。服务器界面如下图所示:客户端功能:客户端有用户登录功能,连接服务器功能,断开服务器供,显示聊天室所有在线 用户功能,统计聊天室用户数量功能,显示当前用户用户名的功能,聊天室聊天 功能,用户退出聊天室等功能。功能图如下图所示:具体功能描述:1 .用户登录:用户打开聊天室客户端程序后,输入用户名,点击连接服务器, 就可以进入聊天室系统,为防止用户不知道服务地址和端口号, 用户界面上已经 将服务地址和端口号设定,且不能更改,用户只需输入用户名,只要用户名符合 要求,可以输入任何用户名,无需注册,任何人都可以登录,退出后不会留下个 人信息,如果需要再次登录只需再次输入用户名即可,
5、可以与上次登录的用户名 不一致。2 .连接服务器:用户在输入用户名后,点击连接服务器即可进入聊天室系统, 否则无法发送消息。此时服务器接收客户端的请求,与客户端建立通信,服务器 显示用户的练级信息,及新用户的用户名,端口号,同时告知聊天室其他成员, 某某用户加入聊天室,更新服务器与所有客户端的用户列表。3 .断开服务连接:用户在登录聊天室成功后,如果想要退出系统,可以点击断 开服务器,或点击关闭按钮,或点击窗口关闭按钮就可退出聊天室,与服务器断 开练级,用户可以重新登录。4 .显示在线用户列表:用户在登录聊天室后,服务器端增加新用户的用户名, 同时遍历原有用户列表,将新用户的用户名增加到用户列
6、表中, 同时更新所有客 户端的用户列表,并显示更新结果。5 .统计聊天室所有用户数量:在服务器更细用户列表后统计用户数量,并显示 在所有客户端。此功能属于显示在线用户列表的次要功能。6 .显示当前用户:用户登录后,输入的用户名会保存在用户名输入文本域内, 同时在用户列表中以红色字体显示当前用户的用户名。如果用户同时开启多个客户端,此功能用于区分不同的客户端。7 .聊天功能:这是聊天室的主要功能,用户可以发送任何文字与聊天室的所有 成员聊天,并且接收其他用户发送的消息,类似 QQ群组的功能。8 .退出聊天室:用户在想要退出聊天室时。点击关闭按钮即可突出聊天室。此 功能类似关闭连接功能。客户端效果
7、效果如下:(界面效果随系统主题更改)H天室!舄服势苣理器用户名:刘备端口号:|8000 闸警地址|127.0.0.1系统通知:黄忠进入“天堂赵云:主公在吗?黄忠:不知道啊?张飞:大哥去和曹操喝酒去了,不让俺张飞跟着,气煞俺也,美羽:三弟,真要胡说,大哥明明在与军师簿商讨对敌侧略口哪里喝酒了.文I儒:子龙解何事甘张飞:大哥,你在啊,我以为你去喝酒了,啤嘿。美羽:是啊,大哥不是说要去商时军事吗(?系董通知:黄田离开聊天室系统逋知:关羽离开就天室刘普:鹅和军师已商时克华,Qfill进来.刘备:子龙找我何事?越云:主公,吴国使者求见主品.系统逋知:军国大事,真在就聊.张飞:呵呵张飞去世.系统通知:张飞
8、离开聊天室1赵云:主公.我也走了,系统通轴:赵云离开聊天室1刘周:等等,我等一同前往,看使者有何话说口撕开服务用户列表在线用尸1当前用户:刘备美闭实现技术a)使用ServerSocket Socket完成服务端和客户端的连接b)服务端使用多线程的方式可以接受多个客户端。c)使用对象的方式,在服务端和客户端之间传送数据。问题解决办法d)服务端和客户端的数据通过什么方式维护?将这些数据封装成类,服务器和客户端发送对象来维护。e)当服务端强制退出时,应该做什么处理?告诉客户端服务端退出,然后关闭所有到服务端的连接。客户端根据服 务端退出,断开和服务端的连接。服务端效果图:客户端效果图:用户名:张三端
9、口号:8000那野地址127.0.0.1二动产 断开服箔张三 我来了!大家鼓掌电/r用户列表在就用尸1当前用户:张三关闭群聊通信:用户君:曲季也用户名二条三值口号二8000口号二aooo用挣电址h歌虹1曼法地址1Z7AQ1Hf开服药斯开旭若用F列悬用列野在户2在地用户a当前用4:甲四当厢用户SK =李国后乌管理明设计思路:实现网络通信必须建立在 TCP/IP协议的基础上,致力于实现应用层,传输 层向应用层提供套接字 Socket接口 .socket封装下层的数据传输细节。应用层的 程序通过Socket来建立与远程主机的连接,以及进行数据传输。聊天室程序采用C/S架构,因此先设计图形界面,将必要
10、的组件布局好,然 后测试在不同计算机上的显示效果,然后更改,确定界面没有问题后,设计程序的逻辑功能等。服务器端程序点击启动后显示一个服务器界面,然后在启动服务器上添加监 听器,要使服务器能稳定的收发数据,采用 TCP的传输模式,服务器通过一直 监听端口,来接收 客户程序的连接请求,在服务器程序中首先创建一个 ServerSocket对象,在构造方法中指定监听的端口:serversocket =new ServerSocket(8000);/ 监听 8000 端口服务器端口号使用1025到65535之间的自定义的服务端口。ServerSocket的构造方法在操作系统中把当前进程注册为服务器进程,
11、服务器程序调用ServerSocket 对象的accept(), 方法,通过该方法一直监听端口,等待客户端的连接请求,如果接收到一个连接请求,accept() 方法返回一个socket 对象,这个Socket对象与客户端的Socket对象形成一条通 向线路:socket =serversocket .accept();/ 等待客户端的连接请求Socket类通过调用inputStream() 和outputStream() 方法,返回输入流InputStream和输出流OutputStream 对象。程序向输出流写数据,完成发送数据,从输入流读数据,接收来自对方的数据。outputStream
12、=newObjectOutputStream(socket.getOutputStream();inputStream =newObjectInputStream(socket.getInputStream();ObjectOutputStream 继承自 OutputStream服务器启动后就一直监听端口等待客户端连接,将客户端传过来的数据封装成对象,然后通过ObjectOutputStream将Java对象的基本数据类型写入OutputStream。可以使用 ObjectInputStream读取(重构)对象。通过使用流则 可以在另一台主机上或另一个进程中重构对象。客户端财通同样的思路先设计程序的界面,然后在不同组件中添加监听器, 客户进程的端口由所在主机的操作系统动态分配, 当客户的进程要求与一个服务 器进程进行连接时操作系统为客户进程随机分配一个还未被占用的端口,当客户进程与服务器断开连接时这个端口就被释放。客户启动客户端的程序然后输入用户名,先对用户名进行校验,输入符合要求后,然后将用户名,端口号,主机地址封装成对象,然后调用socket对象的方法将数据发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit7 Protect the Earth 第三课时(教学设计)2024-2025学年译林版(三起)英语六年级上册
- 2023七年级道德与法治下册 第三单元 在集体中成长第七课 共奏和谐乐章 第1框单音与和声教学设计 新人教版
- 2024-2025学年新教材高中生物 第1章 发酵工程 第2节 第2课时 微生物的选择培养和计数教学设计 新人教版选择性必修3
- 《第2课 查找信息》教学设计教学反思-2023-2024学年小学信息技术人教版三起三年级下册
- 6《蛋壳与薄壳结构》教学设计-2024-2025学年科学五年级下册苏教版
- 2024-2025学年高中物理 第二章 直流电路 单元整合与提升教学设计 教科版选修3-1
- 蓝色教育美术课件
- 西北工业大学保密协议书8篇
- 2023一年级数学下册 6 100以内的加法和减法配套教学设计 新人教版
- 七年级语文下册 第二单元 6 最后一课第3课时教学设计 新人教版
- JJF 1603-2016(0.1~2.5)THz太赫兹光谱仪校准规范
- 《民法典》-第二编 物权编-案例分析,解读-3
- GB/T 1266-2006化学试剂氯化钠
- 海岸动力学全册配套完整课件
- 工作面防飞矸封闭式管理规定
- 纤维素酶活性的测定
- 干部人事档案管理岗位培训的讲义课件
- 验电接地环安装规范
- 计算机监控系统安装单元工程质量验收评定表
- 外墙干挂大理石施工方案(标准版)
- DB65∕T 2683-2007 建材产品中废渣掺加量的测定方法
评论
0/150
提交评论