1 / 13
文档名称:

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

格式:docx   大小:120KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:pppccc8 2019/5/26 文件大小:120 KB

下载得到文件列表

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

文档介绍

文档介绍:课程设计报告课程名称:面向对象程序设计课程设计任课教师:设计题目:网络聊天工具所学专业:信息管理与信息系统班级学号:学生姓名:报告完成tl期:2012年01月10日目录 1一、 项目目标 2二、 功能描述 3服务器端功能 3客户端功能 3三、 设计思路 4(一) 总体设计 4服务器端设计 4客户端设计 4(二) 代码思路 5定义服务端类CServer继承Frame类 1ient类继承Frame类 5四、 具体设计 7总结 10、项目目标实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分。、(1) 提供多线程的聊天服务处理。(2) 在服务器端屏幕上提示客户端进入,显示客户端聊天内容。(3) 当某客户端输入字符“quit”时断开该客户端的连接。(1) 可以配置要连接服务器的1P地址和端口号。(2) 配置用户昵称后连接。(3) 可以向所有人发送消息。(4) 显示本聊天室中的该用户登录后的所有消息。(5) 显示在该用户登录之后登录的用户登录信息。图服务器端管理用例图三、设计思路(一),实现服务器端功能。(1) 定义内部类,此内部类采用多线程,实现多客户端接入。(2) 当初始化界而时,启动服务器。(3) 当某客户端输入字符“quit”时断开该客户端的连接,关闭服务器窗口时关闭与客户端的连接。(4) 服务器接收客户端信息,并把这些信息发送到连接服务器的客户端。2•客户端设计定义一个客户端类,实现客户端功能。(1) 定义三个内部类,以实现连接按钮的监听、信息接收、对自己信息的监听。(2) 定义输入服务器的IP地址、端口号的控件和用户昵称,在连接时把这些信息传给服务器。(3) 发送消息时,通过对系统的监听显示自己发送的消息,其他用户发送的信息通过服务器转发。(二)代码思路1•定义服务端类CScrvcr继承Frame类定义两个构造方法,一个构造方法实现客户端不传参数时服务器窗口标题为空,另外一个构造方法实现客户端传参数时服务器窗口标题为此参数值。都要执行窗口的初始化操作。init()方法即窗口初始化方法,实现服务端界面,在界面中定义一个文本区域,设定窗口关闭时系统退出,并启动服务器。boradCast(Stringstr,Socketsocket)方法,即向所有在服务器中的客户端广播方法,有两个参数,一个传递只显示的字符串,另一个传递套接字。该方法要判断发送信息的用户是否是自己。slanServer()方法,启动服务方法。等待客户端的请求,接收到请求后,产生socket对彖,交给多线程的聊天服务处理。定义内部类Service类,实现Runnable接口。有两个属性套接字socket和用户名name。定义两个构造方法,一个没有参数实现为空,另一个以套接字socket作参数,并获取用户名。nin()方法,没有参数。当用户发送“quit”时,关闭客户连接。用户发送其他信息时广播信息。定义主方法,实例化CServer类。,在init()方法屮构建界面,并调用与服务器连接的方法。connect()方法实现与服务器的连接。Recive()方法实现接收服务器发送的信息。sendName()方法实现向服务器发送用户姓名。定义内部类connBttnListener,实现ActionLIstener©定义内部类Recive,实现线程。定义内部类MyListener,实现ActionLIstener。定义close()方法,实现关闭输出流,关闭套接字。定义主方法,lienttextArea:TextAreatextField:TextFieldnickName:TextFieldaddress:TextFieldport:TextFieldsendBttn:ButtonconnBttn:Buttonpanel1:Panelpane!2:Panelsocket:SocketprintStream:PrintStreamServersocket:Socketname:StringService(Socket)Service()nin()CClient()CClient(String)init()()recive()sendName()CServertextArea:TextAreasocket:Socketsocket1:Sockethashtable:HashtableCServer()CServer(String)init()boradCast(String,Socket)startServer():()CServer(St