现在的算法是:
设一个缓冲区长度为N,然后,为每一次数据进行统计,发一次,就加1,然后把发送数据中的This=count%N,且把缓冲区中第This个成员设为0,在发送端,就要数组中的第This个成员是否为1即可,在接受到的确认信息中,取出This项,再为缓冲区中第This项设为1,这样就可以快速且可靠的判断发送数据是否得到响应回来了。
五月二十日
今天发生了一个怪事,我在调试程序时,发现在,不能在服务器的消息处理消息和OnTimer里面写发送数据的代码,否则,怎么都发送不成功,
好像它是非得此消息处理函数或OnTimer执行完毕,才让其它线程运行,我的发送函数,总是得不到正确结果,我一度怀疑我的底层通讯算法的合理性。后来,我也不知道如何解决,感觉是一个无法逾越的问题,非常失落…………………………………………
晚上,当我重新拿起来的时候,试了试,又觉得这不是不可逾越的问题,只要回避那种情况,就可以了。
我把在OnTimer里处理的事情放在一个线程里去做,完成同样的功能,现在,检查人是否仍然在线的函数,现在终于又成功了。真是太高兴了。
可是,我可能没有足够的时间来完成这个程序了。真可惜。我必须开始写文档了,否则,我将无法完成任务。
五月二十一日
今天,查到用LoadImage()函数,可以读取存在磁盘上的图象文件,客户端显示的头像的问题,终于可以解决了。可是又遇到了问题,我有32x32的16位色的图象,显示时,不知道如何使其透明背景色,因为图象有背景色,所以显示时,看上去无法与背景一样的颜色,而且,我不知道如何由32x32的图象列表,得到相应的16x16的图象列表,因为我需要以小图标的样式显示。我该如何做呢?有人帮我就好了。
五月二十二日
在客户端,我的界面用的是在网上找到的一个源代码
CGfxOutBarCtrl类,可以实现象OutLook和Oicq的那种滚动的分栏条,今天终于看懂了接口部分代码,可以随意更改为我用了。
五月二十四日
今天,我终于明白五月二十日的情况的原因了。
原来,OnTimer也是系统在定时器时间到了,向系统发送的一个消息WM_TIMER,进入消息队列,而CasyncSocket类的OnReceive事件,也是window发送的一个消息进行触发的,所以,正在处理一个消息(比如说菜单响应或OnTimer或命令按钮等)时,当然不可能去处理消息队列中的另一个消息了。看来这个底层通讯的算法,在客户端,是无法适用了,而在服务器端,因为所有的发送数据都在线程里面,所以,用这种算法,还是很不错的,对服务器适用。总算不是”一无是处”,我需要改进在客户端的底层通讯的算法了。
五月二十六日
今天把客户端的底层通讯改进了一下,添加了一个SendDataInThread函数,让它在线程里发送数据,通过向指定窗口发送消息来反馈信息。这样,需要直接发送消息,不需检验时,就可以使用SendData函数,需要检验时,就可以使用SendDataInThread函数。
五月二十七日
客户端在启动时,响应很慢,特别是有离线消息发送过来时,客户端要有2秒的时间无响应,而且,有时,服务器一个数据,发回几次。可能等待的时间(超时时间太短了),修改了一下超时时间的参数,情况好了一点。
五月二十八日
对昨日的情况,我对服务器端进行了一点修改,因为主要是在上线时,发生这种无响应的情况,我在服务器端发送数据时,每发送一次数据后,我就让该线程Sleep(K)一段时间,让客户端有足够时间去处理接受到的数据,这样,就缓解了客户端的情况,使用通讯趋于正常。
§6.2设计中遇到的问题
由于原先的底层通讯算法不适合于客户端使用,在多次失败后,在客户端,对底层通讯算法进行了扩充。
客户端/服务器程序的调试,两个程序得一起运行,一同调试,有很多的不便的地方,特别是涉及到多线程的。
每写100行代码,平均会出现14个编译错误,当然大部分为笔误。1-2个逻辑错误。一度因为无法很快定位到逻辑错误的地方,跟踪程序花了大量的时间与精力,无法继续设计下去。
我有32x32的图象列表CimageList,我需要得到对应缩小了的16x16的图象列表,直到现在,还不知道如何实现。
我的头像是16位色的,无法使用LoadImage里的”使用透明方式”读取图象,我怎样可以得到让它去掉背景色的图象显示?
在VC中不知道如何在下拉列表框中显示图象列表,所以,我的个人资料中,没有实现头像的显示与选择
由于可能由于客户端响应慢的原因,有时,服务器向客户端发送一次以上的同一数据。是否在线程里处理会更好一些呢?
用什么函数,可能得到本机的IP地址?
消息的存储格式,有各种不同的消息,应以何种方式存储为好
如何在程序打开ODBC配置的程序?
参 考 文 献
官章全等 《VC60高级编程范例》 电子工业出版社 2001.1
张海藩. 《软件工程导论》清华大学出版社1998
谢希仁. 《计算机网络》 电子工业出版社. 1999.4
王国印 译.Visual C++TM 技术内幕(第二版) 清华大学出版社. 1996.5
David Bennett著 徐军 等译. Visual C++5 开发人员指南. 机械工业出版社.
木林森 等. Visual C ++ 5.0 使用与开发. 清华大学出版社.
汪成为 等. 面向对象分析、设计及应用. 国防工业出版社. 1992
张海藩. 软件工程导论. 清华大学出版社. 1998.3
谭浩强. C程序设计. 清华大学出版社. 1994
卢有杰 等. C语言高级程序设计. 清华大学出版社. 1992
汪成为 等. 面向对象分析、设计及应用. 国防工业出版社. 1992
首页 上一页 14 15 16 17 下一页 尾页 17/17/17
免费vc++网上寻呼QICQ源代码(附带文档)(十七)由毕业论文网(www.huoyuandh.com)会员上传。