读书人

初涉通讯的一些感受和想法2

发布时间: 2012-10-24 14:15:58 作者: rapoo

初涉通信的一些感受和想法2
今天一到公司就空腹喝了一支藿香正气水,感受到了它泻药般的强大威力……这注定了这一天都不在状态,于是放下手中的编程,剪了个头,打了个球,好好回顾了这两天的编程生活。

xmpp通信的简单实现经过连续几天的编写之后已经没什么大的问题了,在与各种bug斗争的同时也收获了一些经验和感受,但到最后却一直纠结于Swing组件的问题,导致客户端一直没出来。

先说说这几天的感受吧:
1.一人写服务器一人写客户端比单干更能发现问题,也更有挑战性。单干都是按着自己的思维写,所以基本不会想到去处理一些自己意想不到的错误。而团队的话,一旦流程不一致的话将无法进行通信。
2.有很多地方可以借鉴之前学过的内容以及Java自带的类,比如说,我学着书上的ChatTools类编写了一个XmlTools类来负责Xml消息和正常消息的互转。学着JOptionPane的showMessagePane方法来写一个静态的界面,虽然没写成,但还是觉得很有借鉴意义。
3.由于不能经常测试,所以自己要想办法进行自己测试,有些通过正常方法不能测试的方法还要变着法子来测试,之前就是因为忽略测试而发现不了错误,由于发现不了错误就继续按着自己的想法编下去,到最后有机会测试的时候就一下子爆出各种出乎意料的情况,根本无从下手。
4.不能相信对方发过来的信息一定是正确信息,之前因为测试出错觉得是自己的问题,到处找都没找着错在哪里,后来将服务器发过来的一打印才发现对方发错了信息(将receiver发错成sender)。
5.但运行程序出现自己意料之外的情况时,一定要记录好,并逐一排除,这样自己的程序才能写好。
6.感觉到自己还是很浮躁,基础很不扎实,但又静不下心来研究,要好好反省一下。

再说说这几天在纠结的问题:
1.保持对话框窗体的唯一性(已解决)
问题提出背景:每次点击JTree上的用户时会弹出一个对话框,再次点击同名用户时会弹出一个新的对话框,这显然不符合聊天软件的条理,加上我设置的是每次接收到别的用户发给自己的信息时就会自动弹出对应的对话框,同理,也会弹出同名对话框。
我的解决方法:仿造ServerThread队列建一个openFrameList队列用来保存已经打开的JFrame窗体,然后根据队列信息判断是否已创建窗体,没有则创建,有则不创建/把已关闭的窗体重新显示出来。

 ,晕....看来要少喝... 

读书人网 >编程

热点推荐