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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java实现点对点通信文档格式.docx

1、2.能够允许注册过的用户登陆聊天界面并可以聊天。3.能够接受私聊信息并发送给特定的用户。4.服务器运行在自定义的端口上8000。5.服务器监控用户列表和用户聊天信息。 三 设计思想 3.1 总的设计思想是利用java里的套接字Socket和ServerSocket(客户/服务器)来建立进程之间的通信,其中服务器端:1.处理用户注册2.处理用户登录3.处理用户发送信息及文件的传输4.处理用户得到信息5.处理用户退出客户端:1.用户注册界面2.用户登录界面及结果3.用户发送信息界面及结果4.用户得到信息界面及结果5.用户退出界面及结果3.2客户端主要结构 LandingFrame.java 为客户

2、端程序登录界面,负责用户帐号信息的验证与反馈。 RegisterFrame.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。 ChatFrame.java 为客户端程序聊天室主界面,负责接收、发送聊天内容,文件的传输。与服务器端的亲密合作。Message.java为封装的消息类实现对象序列化接口,主要包括发送者名称,接受者名称,信息的内容。附加功能: 可以改变消息字体的样式,字体,颜色3.3系统实现原理当用户聊天时,将当前用户名、聊天对象名、聊天内容、聊天语气进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发

3、送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的固定一小段时间刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为1秒最佳。当每次用户接收到聊天信息,会找到其中属于自己的那一个信息对象(通过Message类中的两个String变量 frname和toname判断),然后将会开始分析聊天信将适合自己的信息人性化地显示在

4、聊天信息界面四 程序的实现4.1 服务器 由于总的聊天系统中消息的传递是采用socket套接字的客户/服务器模型。所以我首先创建了类Serve1 (启动监听端口8000,主要负责登录,注册以及消息的接受)和Serve2类(启动监听端口9000,主要负责文件传) 来创建服务器。在Serve1和Serve2中通过Thread类使用线程实现多个客服端的同时监听和通过一个while(true)循环一直监听新的客服端连接。在Server1中我通过从接受到的输入流中读出流中对象的名称不同,来进行不同的服务处理。其中:public static LinkedList user=new LinkedList(

5、);/用户集public static ArrayList alluser=new ArrayList lme =new LinkedList/消息集obin=new ObjectInputStream(soc.getInputStream();/得到输入流 toc=new PrintStream(soc.getOutputStream(); on=(Object)obin.readObject()/读出对象if(on.getClass().getName().equals(java.util.ArrayList) alluser=(ArrayList)on; JavaChat.Mess) M

6、ess me=(Mess)on; if(me.setuser) user=me.us; if(me.state1) lme=me.me; if(me.state2) Mess mee=new Mess(); mee.me=lme; mee.us=user; obout=new ObjectOutputStream(soc.getOutputStream(); obout.writeObject(mee); /给客户端发送消息和用户集 if(on.getClass().getName().equals(JavaChat.Users Users u=(Users)on; if(u.ru)/表示有新

7、的用户注册 user.add(u); File file=new File(User.txt); try ObjectOutputStream obout=new ObjectOutputStream( new FileOutputStream(file); obout.writeObject(user)obout.close(); catch (IOException e) e.printStackTrace(); if(!u.ru) ServeLog(soc); /处理登录JavaChat.Message) reciveMessage();/对接受到的消息进行处理。 if(on.getCl

8、ass().getName().equals(java.util.LinkedList sendMessage(soc);/给客户端发送信息集4.2 客户端登录和注册4.2.1 登录启动服务器监听后,就可以创建客服端了,在客户端中主要有如下: ChatFrame.java 为客户端程序聊天室主界面,负责接收、发送聊天内容,文件的传输。与服务器端亲密合作。在这之外还有三个对象类用来表示用户信息用于注册用户的Register_Customer,用于 登录用户类Customer,客户端类Chat。4.2.1.1在登录界面类Login中 ,有三个监听按钮button jenter,jcancel,jr

9、egister, 分别用于表示用户是选择登录,退出还是注册这中间重点是注册和登录事件的响应4.2.1.2登录事件的响应 通过方法checkUsers()来实现 private void checkUsers() Users user =new Users(); user.account=accber1.getText().trim(); user.passWord=passWord.getText().trim(); acc=accber1.getText().trim(); try Socket soc=new Socket(IP,8000); ObjectOutputStream obou

10、t=new ObjectOutputStream(soc.getOutputStream(); obout.writeObject(user);/这里服务器通过接受的对象将启动Server1中的ServeLog(Socket soc);方法来判断登录是否能成功BufferedReader re=new BufferedReader(new InputStreamReader(soc.getInputStream(); String stae=re.readLine(); if(stae.equals(此账号已经登录,请重新输入 JOptionPane.showMessageDialog(nul

11、l, accber1.setText( passWord.setText(登录成功 accber1.setText( passWord.setText( new UserFrame(acc);密码输入错误,请重新输入此账号不存在,请重新输入 catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) JOptionPane.showMessageDialog(null, 与服务器断开return;4.2.2注册然后就是注册时间的响应 当你点击登录窗口的注册按钮后就会进入注册画面该界面是通过RegisterF

12、rame类来实现的 注册成功后就可以进行聊天4.3.3聊天 在聊天中主要是通过三个类 UserFrame ,ChatFrame,来分别实现好友列表,私聊 在登录成功后会启动new UserFrame(String Username);1 在new UserFrame中会向服务器发送信息获取当前的在线以及没在线的好友列表,(背景为红色表示在线 ,黑色的表示把该用户设置成了黑名单,有图片闪动说明有消息需要查看) /super.setTitle); Mess me=new Mess(); me.state2=true; Socket soc=new Socket(IP,8000); ObjectOutputStream obout=new ObjectOutputStream

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

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