欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    面向对象程序设计课程设计报告网络聊天工具.doc

    • 资源ID:2386159       资源大小:124KB        全文页数:11页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计课程设计报告网络聊天工具.doc

    课 程 设 计 报 告课程名称:面向对象程序设计课程设计任课教师:设计题目:网络聊天工具所学专业:信息管理与信息系统班级学号:学生姓名:报告完成日期: 2012 年 01 月10日目 录目 录 1一、项目目标 2二、功能描述 31.服务器端功能 32.客户端功能 3三、设计思路 4(一)总体设计 41服务器端设计 42客户端设计 4(二)代码思路 51定义服务端类CServer继承Frame类 52定义CClient类继承Frame类 5四、具体设计 7总 结 10一、项目目标实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分。二、功能描述1.服务器端功能(1)提供多线程的聊天服务处理。(2)在服务器端屏幕上提示客户端进入,显示客户端聊天内容。(3)当某客户端输入字符“quit”时断开该客户端的连接。2.客户端功能(1)可以配置要连接服务器的IP地址和端口号。(2)配置用户昵称后连接。(3)可以向所有人发送消息。(4)显示本聊天室中的该用户登录后的所有消息。(5)显示在该用户登录之后登录的用户登录信息。提供聊天服务处理提示客户端进入断开客户端连接显示客户端聊天内容服务器端管理 图 服务器端管理用例图三、设计思路(一)总体设计1服务器端设计定义一个服务端类,实现服务器端功能。(1)定义内部类,此内部类采用多线程,实现多客户端接入。(2)当初始化界面时,启动服务器。(3)当某客户端输入字符“quit”时断开该客户端的连接,关闭服务器窗口时关闭与客户端的连接。(4)服务器接收客户端信息,并把这些信息发送到连接服务器的客户端。2客户端设计定义一个客户端类,实现客户端功能。(1)定义三个内部类,以实现连接按钮的监听、信息接收、对自己信息的监听。(2)定义输入服务器的IP地址、端口号的控件和用户昵称,在连接时把这些信息传给服务器。(3)发送消息时,通过对系统的监听显示自己发送的消息,其他用户发送的信息通过服务器转发。编译源程序运 行监 听启动服务器客户端接入显 示 消 息发 送 信 息 退 出 系 统图 C/S聊天室的活动图(二)代码思路1定义服务端类CServer继承Frame类(1)定义两个构造方法,一个构造方法实现客户端不传参数时服务器窗口标题为空,另外一个构造方法实现客户端传参数时服务器窗口标题为此参数值。都要执行窗口的初始化操作。(2)init()方法即窗口初始化方法,实现服务端界面,在界面中定义一个文本区域,设定窗口关闭时系统退出,并启动服务器。(3)boradCast(String str,Socket socket)方法,即向所有在服务器中的客户端广播方法,有两个参数,一个传递只显示的字符串,另一个传递套接字。该方法要判断发送信息的用户是否是自己。(4)startServer()方法,启动服务方法。等待客户端的请求,接收到请求后,产生socket对象,交给多线程的聊天服务处理。(5)定义内部类Service类 ,实现Runnable接口。有两个属性套接字socket和用户名name。定义两个构造方法,一个没有参数实现为空,另一个以套接字socket作参数,并获取用户名。run()方法,没有参数。当用户发送“quit”时,关闭客户连接。用户发送其他信息时广播信息。(6)定义主方法,实例化CServer类。2定义CClient类继承Frame类(1)把界面组件定义为属性,在init()方法中构建界面,并调用与服务器连接的方法。(2)connect()方法实现与服务器的连接。(3)Recive()方法实现接收服务器发送的信息。(4)sendName()方法实现向服务器发送用户姓名。(5)定义内部类connBttnListener,实现ActionLIstener。(6)定义内部类Recive,实现线程。(7)定义内部类MyListener,实现ActionLIstener。(8)定义close()方法,实现关闭输出流,关闭套接字。(9)定义主方法,实例化CClient类。CClient textArea : TextAreatextField : TextFieldnickName : TextFieldaddress : TextFieldport : TextFieldsendBttn : ButtonconnBttn : Buttonpanel1 : Panelpanel2 : Panelsocket : SocketprintStream : PrintStreamCClient()CClient(String)init()connet()recive()sendName()Serversocket : Socketname : StringService(Socket)Service()run()CServertextArea : TextAreasocket : Socketsocket1 : Sockethashtable : Hashtable CServer()CServer(String)init()boradCast(String, Socket)startServer()图 自定义的类四具体设计文件中函数的功能如下:文件名方法成员变量CServer.javaCServer()CServer(String)init()boradCast(String, Socket)startServer()textArea : TextAreasocket : Socketsocket1 : Sockethashtable : Hashtable 关键代码public void boradCast(String str,Socket self)Enumeration enumeration=hashtable.keys();System.out.println("本聊天室共有:"+hashtable.size()+"人");PrintStream printStream=null;textArea.append(str);while(enumeration.hasMoreElements()String s=(String) enumeration.nextElement();socket=(Socket)hashtable.get(s);if(socket!=self) tryprintStream=new PrintStream(socket.getOutputStream();printStream.println(str);该代码主要实现将客户端发送的信息,转发给接入服务器的其他客户端。该代码通过一个哈希表,返回一个Enumeration的对象,该对象主要存储的是客户端的名称及其与服务器之间的Socket连接,在下面的程序中通过Name关键字返回具体客户端与服务器之间的Socket连接,获取每一个Socket连接的输出流,然后分别将某一个客户端发送的信息写入到输出流中,转发给其他的客户端。文件名方法成员变量CClient.javaCClient()CClient(String)init()connet()recive()sendName()panel1:Panelpanel:Panelbutton:ButtontextField1:TextFieldtextField2:TextFieldName:TextFieldlabel1:LabeltextArea:TextAreasPanel:ScrollPaneout:PrintWritersock:SocketDEFAULT_PORT:intprintStream:PrintStream关键代码class MyListener implements ActionListenerpublic void actionPerformed(ActionEvent arg0)tryPrintStream printStream=new PrintStream(socket.getOutputStream();printStream.println(textField.getText();textArea.append("我说:"+textField.getText()+"n");textField.setText("");catch(Exception e)该代码实现了一个事件监听的类,获取了客户端与服务器Socket连接对象的输出流,将该客户端文本区内的内容输入到该输出流中,然后通过TextField对象调用append()方法,将该客户端发送的信息显示在该客户端的文本区内服务端程序运行界面客户端程序运行界面总 结通过运用java语言编写网络聊天程序,使我懂得了更多的关于java语言的知识和用法。程序代码中用了许多类函数,构造方法、实现监听。实现了多线程。

    注意事项

    本文(面向对象程序设计课程设计报告网络聊天工具.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开