沫忆心V1.o版终于在昨天竣工了。做这个项目之前,我们定的时间是8月20日,当时,还觉得时间很充分,应该可以完成,熟知后面一拖再拖,直到昨天。这件事中也可以反映一个人做事的态度,自己规划的事情却不能够按时完成。以后这一方面得加强了。闲话少说了,还是切入正题吧!
这个项目,我负责的是服务器端,我搭档(小心姐)负责的是客户端。这次合作我非常满意,比以前好多了,貌似我们两都慢慢的学会了接受别人与自己不同的意见,合作关系也比以前融洽,而且,讨论的也比较多。之前在定框架的时候,我老是弄不明白怎么样把各部分功能结合在一起,后面,在讨论的过程中,慢慢理清了整个程序的框架。框架定好之后,我们就开始协商服务器端与客户端接受消息的协议(这部分是关键),其实,在编写通信应用程序,无非就是协议。只要通信双方都遵守规定的协议,就可以了。话虽如此,但我们在开发程序时,由于之前定的协议不够完善,我们就各自按着各自的想法去修改协议了,以至协议不一致,后面测试时,大家应该也可以猜到结果了。
我觉得我们团队有一点做的不好就是:没有每写完一个功能模块就测试,而是等到各自功能模块都写完了,才开始测试。我觉得这可能也是导致我们项目变慢的原因。
说了这么久,还没有说:我们项目的功能。现在就介绍下我们项目的功能:
1.能够实现简单的聊天(文本聊天)
2.能够实现网络五子棋功能,而且还可以边下棋边聊天
3.能够实现网络画板功能
当初,我们做项目文档时:还添加了大型文件传送的功能,还有远程控制的功能,目前还没实现,不过我们以后会慢慢升级我们的版本的。下面是我们项目展示图:
1. 注册和登录界面:

2.聊天界面:

3.发送五子棋邀请界面:

4.下棋输赢界面:

5.发送网络画板邀请界面:

6.网络画板界面:


7.网络画板与聊天界面:

下面谈下我在项目中遇到的困难:
1.当注册名和发送文本聊天的内容是汉字时,出现乱码现象。
问题代码:
public void sendMsg2One(String sender,String content)throws IOException{
dous.writeInt(4+1+1+1+sender.length()+content.length());//发送总长度
}
当名字和内容为汉字时,肯定总长度不是我上面写的那个,因为每个汉字占两个字节,而按着我写的求字符串的长度并没把汉字当两个字节处理,所以,总长度肯定不对,修改代码:
public void sendMsg2One(String sender,String content)throws IOException{
byte[]senderName=sender.getBytes();
byte[]messageC=content.getBytes();
dous.writeInt(4+1+1+1+senderName.length+messageC.length);//发送总长度
}
2.出现EOFException错误。
测试的时候,老是出现这个错误,当时,真的觉得很纠结,因为不知道从哪下手去解决这个问题,而且上网也查了些资料,大多解释的是:意外到达流的末尾,不过,我觉得好像跟我这个程序没什么联系,有的说是:当你试图去读一个基本类型数据,而对方并没有发送该类型的数据,不过,我与搭档核对之后,也排除了这个可能。然后,我觉得可能是我代码逻辑有问题,后面跟搭档讨论了一番,重新看了下代码,真的是代码逻辑有问题。因为,我的程序中各功能模块中用的是同一个网络输入流和输出流,而我每次写完数据时又将其dous.flush()强制关闭了,然后,写数据的时候,又用这个dous去写,很明显不对,后面去掉dous.flush();这条语句就没出现这种错误了。哎,这种逻辑错误还真难发现。
3. 在发送棋盘时,得到本地图片是Image类型的,我将其强制转换成BufferedImage类型(因为ImageIO.write()方法中图片不能为Image类型),导致出现这种错误。sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
要先将Image类型转换成BufferedImage类型,具体步骤是:
Image image=Resource.chessBoard.getImage();//得到棋盘的图片
BufferedImage buff=new BufferedImage(chessBoard.getHeight(null),chessBoard.getWidth(null),BufferedImage.TYPE_INT_RGB);
buff.createGraphics();
这样就可以了。
4.文件输出完毕时,没有写fous.flush(),和fous.close()方法。其实,这个问题我自己没有注意,后面胡zong在看我代码时,一下子就发现了,虽然看似很小的问题,不过,这个小小的问题可能导致程序中出现很莫名其妙的问题,所以,以后的注意自己的编程习惯了,要注意每个细节啊!
5.打印语句太多,太凌乱,有时找个打印语句都得看上半天,而且,打印语句太多,程序看上去有点杂乱无章,虽然,接触过日志管理系统,但可能是还不熟悉,所以没有用到过。
6.修改协议时,双方都没有互相通知,导致在测试项目时,出现了各种各样的错误,而且找错误时也很纠结,因为我们都没有怀疑是没有遵循协议的原因,就一味的在程序中找错误,后面纠结了很久,就想到了是不是没有遵循协议的问题。果不其然,双方持有的协议不一样,不出错才怪呢?其实,很多错误,都是我们双方没有遵循协议的原因,导致项目进展的很慢。
7.这个项目还有个很大的问题没有解决:就是在聊天的功能模块中,界面出现组件移位的现象,而且好奇怪的是:当用英文聊天时,窗体界面是正常的,但是,当用中文聊天时,就会出现这种情况,而且,将界面最大化,在最小化,界面才恢复正常,不知道是什么原因?求各位大神指导下。

- 大小: 38.1 KB

- 大小: 325.5 KB

- 大小: 278 KB

- 大小: 279.4 KB

- 大小: 260.1 KB

- 大小: 13.3 KB

- 大小: 10.4 KB

- 大小: 279.8 KB
分享到:
相关推荐
《沫忆心V1.0记录——通信项目详解》 在IT行业中,通信项目是至关重要的环节,它涉及网络协议、数据传输、并发处理等多个核心领域。沫忆心V1.0记录为我们揭示了一个典型的通信项目的实现过程。在这个项目中,我们...
HCIP-Datacom-Core Technology V1.0 培训PPT HCIP-Datacom-Core Technology V1.0 课程表.xlsx HCIP-Datacom-Core Technology V1.0 实验设备清单.xlsx HCIP-Datacom-Core Technology V1.0 实验室搭建指南.docx HCIP-...
HCIP-Datacom-Core Technology V1.0 实验室搭建指南.docx HCIP-Datacom-Core Technology V1.0 实验手册.docx HCIP-Datacom-Core Technology V1.0 实验手册.pdf HCIP-Datacom-Core Technology V1.0 实验设备清单....
《天信CPU卡流量计通信协议V1.0》是浙江天信仪表有限公司为智能型流量计设计的一种通信规范,用于实现与CPU卡系列流量计的RS485通信。该协议详细规定了数据的传输格式、串口配置以及各种指令的结构,以确保设备间...
HCIA-Datacom V1.0 培训材料1
为了实现与PC系统的高效通信,西门子推出了S7 200 OPC Server V1.0,配合PC Access软件,为用户提供了强大的数据交换解决方案。本篇将详细介绍S7 200 OPC Server V1.0及PC Access SP3的相关知识点。 OPC(OLE for ...
《chenjungys2008通信概预算编制系统V1.0(标准版)》是一款专为通信行业设计的软件工具,旨在帮助用户高效、准确地进行通信工程的概预算编制工作。概预算编制是通信工程建设的重要环节,它涉及到项目成本估算、投资...
**串口调试工具QCOM_V1.0:经典与实用的可视化界面** 串口调试工具在IT领域,尤其是硬件开发和嵌入式系统调试中扮演着至关重要的角色。...对于那些需要频繁进行串口通信的项目,QCOM_V1.0无疑是值得尝试的优质选择。
总结,S7-200 PC ACCESS v1.0 SP5和SP6是西门子对原版软件的重要升级,它们提供了更好的性能、更稳定的通信和更多的功能。对于S7-200系列PLC的用户来说,及时安装这些服务包能显著提高工作效率,减少可能出现的问题...
### SPM93MODBUS串行通信协议V1.0 #### 1. 简介 本协议详细描述了SPM93仪表在MODBUS通信模式下的输入和输出命令、信息以及数据交换规则,旨在方便第三方进行使用与开发。 ##### 1.1 串行通讯协议的目的 此协议的...
HCIA-Datacom V1.0是华为推出的一项认证,主要针对数据通信领域的基础理论和技术进行深入学习。这个认证旨在帮助专业人士理解网络基础知识,掌握基本的网络设备操作、配置和故障排查技能,以及具备初步的网络设计...
HCIA-Datacom V1.0 培训教材
作为初代产品,秉火串口调试助手v1.0提供了基本的串口通信功能,包括串口打开、关闭、设置波特率、数据位、停止位、校验方式等。用户可以通过该工具向设备发送数据,并实时接收返回的数据,显示在界面上,方便查看和...
HCIE Datacom V1.0 PPT
总的来说,STM32开发指南V1.0库函数版本是一份全面且实用的参考资料,它将引导用户逐步掌握STM32的开发技能,同时利用ALIENTEK战舰STM32开发板实现各种项目和应用。通过阅读和实践,开发者可以提升嵌入式系统的设计...
HCIA-Datacom V1.0 培训材料-PPT.rar
这个型号通常代表该路由器的硬件版本,"V1.0" 指的是它的第一版硬件设计。路由器是网络连接的核心设备,它允许家庭或办公室内的多台设备通过共享互联网连接进行通信。 【描述】"TL-R473G V1.0升级软件20171101" ...
标题中的“SMC阀岛PROFINET通信_GSD文件_GSDML-V2.3-SMC-EX245-V1.0”表明我们要探讨的是SMC公司的阀岛产品,它支持PROFINET通信协议,并且涉及到GSD(Generic Station Description)文件。GSD文件是用于PLC(可编程...
【HCIA-Datacom V1.0 培训材料】是华为针对其数通(Datacom)领域推出的新版认证课程,旨在帮助学习者掌握网络基础、路由与交换技术、网络运维等核心技能。该培训材料包含了丰富的学习资源,如PPT教程、实验手册、...
《HCIP-Datacom-Core Technology V1.0》是一份重要的IT学习资料,主要涵盖了华为认证的高级数据通信核心技术。这份压缩包包含了两部分关键内容:实验手册和文档,旨在帮助学习者深入理解并掌握数据通信领域的核心...