沫忆心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的知识点涵盖了一系列数据通信基础知识以及相关的华为认证网络工程师的初级教育内容。这部分课程重点在于为学员提供数据通信领域的核心概念、技术和解决方案的理解。数据通信是现代信息...
**串口调试工具QCOM_V1.0:经典与实用的可视化界面** 串口调试工具在IT领域,尤其是硬件开发和嵌入式系统调试中扮演着至关重要的角色。...对于那些需要频繁进行串口通信的项目,QCOM_V1.0无疑是值得尝试的优质选择。
为了实现与PC系统的高效通信,西门子推出了S7 200 OPC Server V1.0,配合PC Access软件,为用户提供了强大的数据交换解决方案。本篇将详细介绍S7 200 OPC Server V1.0及PC Access SP3的相关知识点。 OPC(OLE for ...
华为认证HCIE-Datacom V1.0课程是华为网络技术学院针对数据通信领域的专业认证,旨在培养具有高级网络数据通信知识和技能的工程师。HCIE(Huawei Certified Internetwork Expert)是华为认证体系中的最高级别,代表...
总结,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 培训教材 HCIA-Datacom V1.0 实验手册
"V1.0 PC Access SP6 完整安装包 解决出现错误问题 支持win7" 这个标题指的是一个特定版本的软件,即PC Access的Service Pack 6(SP6)的V1.0版本。PC Access是西门子为工业自动化领域提供的一种软件解决方案,它...
HCIA-Datacom V1.0 培训教材
作为初代产品,秉火串口调试助手v1.0提供了基本的串口通信功能,包括串口打开、关闭、设置波特率、数据位、停止位、校验方式等。用户可以通过该工具向设备发送数据,并实时接收返回的数据,显示在界面上,方便查看和...
总的来说,STM32开发指南V1.0库函数版本是一份全面且实用的参考资料,它将引导用户逐步掌握STM32的开发技能,同时利用ALIENTEK战舰STM32开发板实现各种项目和应用。通过阅读和实践,开发者可以提升嵌入式系统的设计...
HCIE Datacom V1.0 PPT
HCIA-Datacom V1.0 培训材料-PPT.rar
1. **实时数据传输**:SerialDebugTool_v1.0支持实时发送和接收串口数据,这对于测试和调试串口通信协议至关重要。用户可以实时查看接收的数据,同时通过输入框发送自定义数据,实现双向通信。 2. **波特率设置**:...
《ModbusTcpServerTool_v1.0:模拟MODBUS TCP从站的强大调试工具》 在工业自动化领域,MODBUS通信协议因其简单、易用和开放性而被广泛应用。本篇文章将详细探讨“ModbusTcpServerTool_v1.0.rar”这一工具,它是一款...