实验五修改聊天程序.doc_第1页
实验五修改聊天程序.doc_第2页
实验五修改聊天程序.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA实验五一、 实验要求本实验要求修改书13-10的聊天程序。修改的内容如下:1、 将applet程序改成应用程序。2、 给客户端的界面增加一个列表框控件,在此列表框中显示所有客户的姓名。3、 客户端的程序执行效果如下:二、 实验步骤1、 将applet程序改成应用程序。提示:要将applet程序中init()和start()方法中的代码移植到应用程序中的构造函数或另外增加的函数中。2、 增加一个列表框控件Jlist,并且用拆分窗格JsplitPane将原有的文本区和Jlist分成两半。(附件中有一个列表框控件的示例,你们可以参考,拆分窗格书上有介绍)3、 将所有登录的客户的姓名显示到列表框中。三、 难点1、 服务器要将所有登录客户的姓名和IP地址发送给每一个客户,可能很多同学想到应该用循环,对每个hashtable循环一次就out一次,这可以实现,但是客户端的代码就不好写了。我的方法是服务器方发送客户信息时,将所有客户的信息放到一个对象中,然后用out.writeObject方法传送该对象就可以了,客户端收到给对象后,再利用该对象提供的方法就可以知道该对象的信息了。2、 因此需要在服务器端和客户端增加一个类,该类包含两个成员变量,一个是客户姓名数组,一个是客户IP地址数组,由于数组大小是不确定的,所有必须用动态数组ArrayList。Class ClientInfo ArrayList clientname; ArrayList clientIP;./其他的大家自己定义3、 这样,服务器输出给客户端的信息总共有两种,一是用out.writeUTF输出的聊天信息,一是用out.writeObject输出的客户信息。客户端在接收信息时如何判断现在应该用readUTF还是用readObject。我用的方法是在服务器端发送这两种信息前先发送一个逻辑变量,如果要发送聊天信息,则先用out.writeBoolean(T)发送一个true给客户端。如果要发送客户信息,则先用out.writeBoolena(!T)发送一个false给客户端。4、 客户端的run方法用来接受信息。在run方法中,客户端要先用in.readBoolean方法接受一个逻辑值,根据这个逻辑值再选择是用readUTF还是readObject。用readObject方法读到对象后,再根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论