Java大作业设计报告.docx
《Java大作业设计报告.docx》由会员分享,可在线阅读,更多相关《Java大作业设计报告.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java大作业设计报告 Java程序设计大作业设 计报告 设计名称多人聊天室 组员姓名 学生班级 设计时间 2022.12.15 设计成绩 一、问题描述及设计思路 设计多人聊天程序,能进行多人实时聊天,其中服务器为PC端,客户端为安卓端。 在服务器上,不断监听来自客户端的接入请求,对于接入的客户端加入线程池,同时为之开启独立线程,等待从该客户端发来的信息,再转发给其他客户端。 在客户端上,首先布局简单的安卓界面,开启客户端并且登录后,设置button 按钮监听想服务器发送信息请求,同时开启独立线程接收来自服务器的信息(即来自其他客户端的信息)。 二、详细设计过程 服务器开发 1.首先,导入了我
2、们完成服务器端所要完成的各种类: 能,辅助以GUI界面进行美化。 2.在Server类里面的私有成员函数里,有以下定义: 程运行做准备, 同时创建了一个广义的ArrayListvector,用来存放客户端的套接字。创建了两个file类的文件,分别用于记录客户端的链接信息和保存客户端的聊天记录。 一个独立的线程,互不干扰。接下来则是采用GUI组件进行简单的界面设计,在try-catch块里完成主要功能。 首先,采用ServerSocket serverSocket = new ServerSocket(port);建立套接字,一旦建立成功,则在服务器端的界面上会出现创建的日期信息。又使用Sock
3、et socket = serverSocket.accept();连接客户端,采用while语句不断监听客户端连接,收到请求后,则在服务器端显示客户端的信息,如连接到服务器的时间,客户端的主机名称和IP地址,这些信息会被写进txt文本进行保存。 mExecutorService.execute(new Thread (newHandleAClient(socket);则是向线程池中添加线程,这里使用了一个内部类HandleAClient用于处理服务器和单独一个客户端之间的问题。请看下面的继续解析。 4.采用一个内部类HandAClient完成一个客户端和服务器之前互相传输信息的 将信息发送到
4、其他的客户端。首先,用br获取流对象,再用msg保存读到的信息,同时在里面还定义了另外一个函数sendToClient(),用于把信息发送给客户端,在发送信息是,服务端还要进行判断,通过ArrayList类对象Vector,里面每一个元素为客户端的socket,进行判断:如果获取到的某个信息是来源于客户端A,则发送时客户端A暂时关闭,把A的信息发送到其他的所有客户端,这样会避免在客户端上自己发出的信息显示两次的问题。同时,服务端把客户端的信息保存为记录文本txt文件。 客户端开发 开发步骤: 1.新建一个android应用程序 2.在布局文件中添加两个button控件标签,和两个文本框,并未其
5、设置属性和值 3.在Activity中,声明控件变量并根据id获得控件对象 protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView( yout.activity_talk); buttonIn = (Button) findViewById(R.id.buttonIn); buttonSend = (Button) findViewById(R.id.buttonSend); /show the messages text01 = (EditTex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 作业 设计 报告
限制150内