JAVA聊天室课程设计报告(含源代码压缩文件)(3)

2019-01-10 11:49

JButton button = new JButton(\发送\);

DefaultListModelmodel = newDefaultListModel(); ChatJFrame.SendButtonListener listener; ChatJFrame.IPListListener listener2;

static DatagramSocket socket = null; //消息发送插口

static DatagramSocket socketBroadcast = null; //广播发送插口 //声明成员变量

publicstaticfinalintUDP_CONNECT = 0; publicstaticfinalintUDP_EXIT = 1; publicstaticfinalintUDP_MESSAGE = 2; publicstaticfinalintUDP_USER_ACK = 6; publicstatic String SEP = \; //分隔符 publicstaticintUDPport = 3333;//消息发送端口 publicstaticintUDPDesPort = 3333; //消息接收端口 publicstaticintBroadcastPort = 5555;//广播端口

publicstaticintBroadcastDesPort = 5555; //接收广播端口 publicstaticintDataLength = 8192;//数据报默认长度 InetAddress iaSource;//本机IP地址 String MyIPAddress;//IP地址字符串

// 如果IP地址为空,则执行下面的操作 if (this.text2.getText().equals(\))

this.TAreaMessage.append(\注意:IP地址栏为空,请双击用户列表,输入对方IP!\\n\);

}

void init() {

11

setLayout(null);// 设置布局方式为NULL this.TAreaMessage.setEditable(false);

//设置容器X轴上的起点 和Y轴上的起点 以及组件的长度和组件的高度 this.TAreaMessage.setBounds(10, 70, 300, 200); this.TAreaMessage.setLineWrap(true); JScrollPane localJScrollPane = new JScrollPane(this.TAreaMessage);

localJScrollPane.setBounds(10, 70, 300, 200); add(localJScrollPane);

publicvoid run() {

String str1 = ChatJFrame.this.MyIPAddress;// 获取IP地址信息 inti = str1.lastIndexOf('.');// 用分割符.将IP区分割开 String str2 = String.valueOf(0) + ChatJFrame.SEP + ChatJFrame.this.MyIPAddress + ChatJFrame.SEP;

byte[] arrayOfByte = str2.getBytes(); while (true) try {

// 获取目的IP地址

String str3 = str1.substring(0, i + 1) + String.valueOf(255);

// getAllByName()方法是根据主机名返回其可能的所有InetAddress对象,保存在一个数组中。

InetAddress localInetAddress = InetAddress.getByName(str3);

// 封装要发送的信息

12

DatagramPacket localDatagramPacket = new

DatagramPacket(arrayOfByte, arrayOfByte.length, localInetAddress, ChatJFrame.BroadcastDesPort);

// 发送消息

ChatJFrame.socketBroadcast.send(localDatagramPacket); Thread.sleep(2000L); 四、

分析总结

总结本模块开发工作,遇到问题如何解决、改进设想及心得体会。

此聊天室小系统从整体上是实现的,大部分功能都可以应用,但是个人能力有限,还是有一些不足之处,有如下几点:(1)客户端的发送文件功能不完善,本想实现可发送和接收所有文件的功能,但是最终尝试过改进,无法实现,知识简单的文本文档传送功能,而且这也不一定成功。应该是程序不够完善,或是哪里出错(2)客户端的发送表情功能也没有实现,本来的意图是像QQ那样,实现表情图形发送,更加形象,最终还是无法做到,查找相关资料,也没有这部分的讲解,再有时间有限,我也就打消这个功能,改用简单的文字传输(3)服务器的关闭服务器按钮实现有点问题,刚开始调试的时候可以,第二次调试下面就出现广播用户命令失败的提示,并且不强行停止还不会自己停下来,不知道是什么地方出现了问题,希望老师能给予我提示解答。

Java聊天室运行结果

这里可以实现两个人在同一局域网的聊天,程序可以自动扫描上线的用户。如果需要与其中的用户进行交谈,则只需双击用户列表,输入对方IP,便可在下面的输入框内输入信息进行发送。

13

在聊天框中输入想要发送的信息,会出现本机发送的信息,以及本机的IP地址。

14

4

课程设计总结

总结本次工作内容及存在的不足,改进设想。

经过一个多星期的努力,我实现了用JAVA程序设计语言开发的简单聊天室系统,代码部分参照网上资源,部分用老师以前讲过的知识进行修改,经过细心的调试和排错解决了绝大部分的问题。但计算机程序总会有一些不足之处,一些无法实现的功能等。我做的这个系统只是简单的一个聊天页面,然后能看到自己主机发送的信息。本聊天系统对于刚刚接触JAVA程序设计语言一年的我们来说已经算是比较容易实现的,基于对面向对象程序设计有了初步的概念,同时也设计到类似的编程思想,所以此次设计上手比较容易,而且我还是选择了比较容易的课题。但是我知道我还有很多不足之处,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有很多未解决的缺陷。到目前为止,对JAVA的学习知识在老师和自己的努力下学了JAVAEE的一些基本知识,今后的学习和工作中,还有很多方面等着自己去学。

目前本聊天系统还有待完善的功能列表如下: 聊天系统发送和接收文件的功能;

聊天系统缺乏各种表情选择,屏蔽发言,播放音乐,悄悄话聊天室等功能; 没有详细考虑聊天室管理功能。

对于上述的缺陷,本人还会不断对聊天系统进一步的完善它,期望在今后的日子里凭借自己的技术以及跟同学相互交流JAVA技术,争取把本聊天室有待完善的部分尽快做出来,并且完成一些更好的作品。

源代码:

14552019戴佳伟.rar15

参考文献

文献写法如下:

1. 专著、论文集、毕业论文、报告等

[序号]作者.书名[文献类型标志].出版地:出版者,出版年.起止页码(任选).(文献类型标志:专著M;论文集C;报告R;其它文献Z)

2. 期刊

[序号]作者.篇名[J].刊名,年,卷(期刊). 3. 电子文献

[序号]主要责任者.电子文献题名[文献类型/载体类型].电子文献的出版或可获得地址,发表或更新的期/引用日期(任选).

例如:

[1]孟彩霞.计算机软件基础[M].西安:西安电子科技大学出版社,2003.

[1]Cay S.Horstmann Gary Cornell.Java核心技术 卷I 基础知识[M].北京:机械工业出版社,2013.11

[2]张光彬 孟红蕊 张永宝..Java课程设计(案例精编)[M].北京:清华大学出版社.2007

16


JAVA聊天室课程设计报告(含源代码压缩文件)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:室分施工协议

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: