计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费vc++网上寻呼QICQ源代码(附带论文)(一)(8)

2013-06-29 01:28
导读:这个算法即麻烦,又易出错,真不知当时是怎么想的。 现在的算法是: 设一个缓冲区长度为N,然后,为每一次数据进行统计,发一次,就加1,然后把发
这个算法即麻烦,又易出错,真不知当时是怎么想的。
现在的算法是:
 设一个缓冲区长度为N,然后,为每一次数据进行统计,发一次,就加1,然后把发送数据中的This=count%N,且把缓冲区中第This个成员设为0,在发送端,就要数组中的第This个成员是否为1即可,在接受到的确认信息中,取出This项,再为缓冲区中第This项设为1,这样就可以快速且可靠的判断发送数据是否得到响应回来了。
 
五月二十日
今天发生了一个怪事,我在调试程序时,发现在,不能在服务器的消息处理消息和OnTimer里面写发送数据的代码,否则,怎么都发送不成功,
好像它是非得此消息处理函数或OnTimer执行完毕,才让其它线程运行,我的发送函数,总是得不到正确结果,我一度怀疑我的底层通讯算法的合理性。后来,我也不知道如何解决,感觉是一个无法逾越的问题,非常失落…………………………………………
晚上,当我重新拿起来的时候,试了试,又觉得这不是不可逾越的问题,只要回避那种情况,就可以了。
我把在OnTimer里处理的事情放在一个线程里去做,完成同样的功能,现在,检查人是否仍然在线的函数,现在终于又成功了。真是太高兴了。
可是,我可能没有足够的时间来完成这个程序了。真可惜。我必须开始了,否则,我将无法完成任务。

五月二十一日
今天,查到用LoadImage()函数,可以读取存在磁盘上的图象文件,客户端显示的头像的问题,终于可以解决了。可是又遇到了问题,我有32x32的16位色的图象,显示时,不知道如何使其透明背景色,因为图象有背景色,所以显示时,看上去无法与背景一样的颜色,而且,我不知道如何由32x32的图象列表,得到相应的16x16的图象列表,因为我需要以小图标的样式显示。我该如何做呢?有人帮我就好了。

五月二十二日 (科教范文网 lw.AsEac.com编辑整理)
在客户端,我的界面用的是在网上找到的一个源代码
CGfxOutBarCtrl类,可以实现象OutLook和Oicq的那种滚动的分栏条,今天终于看懂了接口部分代码,可以随意更改为我用了。

五月二十四日
今天,我终于明白五月二十日的情况的原因了。
原来,OnTimer也是系统在定时器时间到了,向系统发送的一个消息WM_TIMER,进入消息队列,而CasyncSocket类的OnReceive事件,也是window发送的一个消息进行触发的,所以,正在处理一个消息(比如说菜单响应或OnTimer或命令按钮等)时,当然不可能去处理消息队列中的另一个消息了。看来这个底层通讯的算法,在客户端,是无法适用了,而在服务器端,因为所有的发送数据都在线程里面,所以,用这种算法,还是很不错的,对服务器适用。总算不是”一无是处”,我需要改进在客户端的底层通讯的算法了。

五月二十六日
今天把客户端的底层通讯改进了一下,添加了一个SendDataInThread函数,让它在线程里发送数据,通过向指定窗口发送消息来反馈信息。这样,需要直接发送消息,不需检验时,就可以使用SendData函数,需要检验时,就可以使用SendDataInThread函数。

五月二十七日
客户端在启动时,响应很慢,特别是有离线消息发送过来时,客户端要有2秒的时间无响应,而且,有时,服务器一个数据,发回几次。可能等待的时间(超时时间太短了),修改了一下超时时间的参数,情况好了一点。

五月二十八日
对昨日的情况,我对服务器端进行了一点修改,因为主要是在上线时,发生这种无响应的情况,我在服务器端发送数据时,每发送一次数据后,我就让该线程Sleep(K)一段时间,让客户端有足够时间去处理接受到的数据,这样,就缓解了客户端的情况,使用通讯趋于正常。

§6.2设计中遇到的问题 (科教作文网http://zw.NSEaC.com编辑发布)
 由于原先的底层通讯算法不适合于客户端使用,在多次失败后,在客户端,对底层通讯算法进行了扩充。
客户端/服务器程序的调试,两个程序得一起运行,一同调试,有很多的不便的地方,特别是涉及到多线程的。
每写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 (转载自中国科教评价网http://www.nseac.com
 谭浩强.  C程序设计.  清华大学出版社. 1994
 卢有杰 等.  C语言高级程序设计.  清华大学出版社. 1992
  汪成为 等.  面向对象分析、设计及应用.  国防工业出版社. 1992

上一篇:免费房产证信息数字签名的实现(一)毕业 下一篇:没有了