读书人

沫忆心V1.0版(通讯项目)

发布时间: 2012-06-29 15:48:46 作者: rapoo

沫忆心V1.0版(通信项目)

2.聊天界面:

?
沫忆心V1.0版(通讯项目)
?3.发送五子棋邀请界面:


?
沫忆心V1.0版(通讯项目)
?

4.下棋输赢界面:


沫忆心V1.0版(通讯项目)
?5.发送网络画板邀请界面:


沫忆心V1.0版(通讯项目)
?6.网络画板界面:


沫忆心V1.0版(通讯项目)
?
沫忆心V1.0版(通讯项目)
?7.网络画板与聊天界面:


沫忆心V1.0版(通讯项目)
?下面谈下我在项目中遇到的困难:

1.当注册名和发送文本聊天的内容是汉字时,出现乱码现象。

问题代码:

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.这个项目还有个很大的问题没有解决:就是在聊天的功能模块中,界面出现组件移位的现象,而且好奇怪的是:当用英文聊天时,窗体界面是正常的,但是,当用中文聊天时,就会出现这种情况,而且,将界面最大化,在最小化,界面才恢复正常,不知道是什么原因?求各位大神指导下。

1 楼 fenger_chui 2011-09-02 你们这是学校的项目还是公司的项目? 2 楼 甘艳丽 2011-09-03 fenger_chui 写道你们这是学校的项目还是公司的项目?
是我在外面的培训机构的作业

读书人网 >互联网

热点推荐