欢迎来到天天文库
浏览记录
ID:35241837
大小:169.00 KB
页数:22页
时间:2019-03-22
《java网络编程实践报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、计算机网络实验题目:基于C/S的控制台聊天室姓名:学号:基于C/S的控制台聊天室一、设计目的巩固所学的Java语言基础知识,增进Java语言的编辑基本功,拓展常用类库的应用,使我们通过教学环节与手段,把所学的课程及相关知识加以融会贯通,二、设计内容运用Java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了Java.awt包,Java.swing包等。程序实现了聊天室的基本功能,其中有:1.启动服务器。2.启动登录界面。3.进入客户端界面。4.发送信息。5.离开客户端界面。6.关闭服务器。三、分析1.首先通过继承JFrame类构造
2、服务器界面。使服务器能够为每一个客户启动一个线程,记录客户的上下线行为、登录的IP,发送消息的时刻,监视客户的聊天记录,对于出现不文明的话语,在客户端进行屏蔽,并统计出现不文明用语的次数,超过三次提示警告信息,并将其踢出聊天室。2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。3.设计登录程序,使其显示登录的IP地址端口号,以及用户昵称,通过登录按钮可以调用客户端程序,实现;聊天功能。四、详细设计程序中引入的包:importjava.net.*;importjava.io.*;importjava.util.*;importjava.awt.event
3、.*;importjava.awt.*;importjava.javax.swing.*;1)服务器端代码中用户自定义的类:类名:Server作用:服务器的启动继承的类:JFrame,构造服务器界面。定义的对象:TextArea文本域Java.awt.List在线客户列表SeverSocket服务器Socket客户端主要成员方法:voidinit()构造服务器端的界面publicvoidactionPerformed(ActionEvente)按钮监听器publicvoidkeyPressed(KeyEvente)键盘监听器类名:start作用:启动服务器的线程继承的类名:threa
4、d主要的成员方法:Publicvoidrun()启动服务器的线程类名:SgService继承的类名:thread主要的成员方法:publicvoidrun()处理单个客户的线程2)用户登录相关的类:类名:login作用:构造登录界面继承的类:JFrame实现的接口:ActionListener构造方法:publiclogin()主要的成员方法:publicvoidactionPerformed(ActionEvente)实现登录和取消按钮的监听器类名:loginStart继承的类:thread主要的方法:publicvoidrun()作用:如果登录成功,则弹出客户端聊天窗口,如果登录
5、失败,则打印出登录失败,以告知客户1)客户端相关的类:类名:Client继承的类:JFrame实现的接口:ActionListener构造方法:publicClient(PrintStreamout,BufferedReaderin,Stringname)主要的成员方法:publicvoidreceive()接受服务端发来的信息五.主要程序源代码//聊天室服务器importjava.net.*;importjava.io.*;importjava.util.*;importjava.awt.event.*;importjava.awt.*;importjavax.swing.*;cl
6、assServerextendsJFrame{privateTextAreamsgA=newTextArea();//服务器用来输入用的文本域privateTextAreaarea=newTextArea();//服务器显示消息的文本域privateTextFieldportT=newTextField("8888");privatejava.awt.Listlist=newjava.awt.List();//在线客户列表privateServerSocketserver;//服务器privateSocketclient;//客户端privateMapc
7、ontainer=newHashMap();//HashMapvoidinit(){Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();Panelp4=newPanel();Panelp5=newPanel();Panelp6=newPanel();Panelp7=newPanel();Panelp8=newPanel();Panelp9=newPanel();Pa
此文档下载收益归作者所有