网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 免费vc++网上寻呼QICQ源代码(附带文档)(十六)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

免费vc++网上寻呼QICQ源代码(附带文档)(十六)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
免费vc++网上寻呼QICQ源代码(附带文档)(十六) p;
§4.15客户端处理服务器发送来数据的算法
 
 在客户端接受到数据后,若不是确认消息,则向父窗口发送一个WM_RECIEVE_MSG,将把接受到的数据做为参数传递过来。
 在消息处理函数ProcRecv进行处理接受到的数据。对接受到的不同数据类型,分别进行相应处理。
 现在,对其中一部分数据进行分析:
 
一.case SEND_MSG_TO_FRIEND:接受好友发来的信息
 首先判断消息的发送者是不是在自己的好友列表中,若是,则保存下当前用户的信息指针(pInfo)和状态指针(pState),若不是,则在自己的陌生人列表中查找是否有这个人,找到,则保存下当前用户的信息指针(pInfo)和状态指针(pState),没有找到,则说明是一个新的陌生人,新建其数据结构,添加到陌生人列表中,并保存其用户的信息指针(pInfo)和状态指针(pState)。然后如果pState->pRecv指向的对话框类实例没有建立,则建立实例。最后,向pState->pRecv指向的对话框发送WM_RECVMSG消息,并把pInfo和pState作为参数传递过去,让其显示接受到的信息。
 
二.case ONLINE: 某人上线的消息
 寻找好友中是否有这个人,有则保存其在线在状态、IP和Port,然后让其加亮显示。
 
 三.Case ONHIDE 某人隐身
 寻找好友中是否有这个人,有则保存其隐身状态、IP和Port,然后让其变灰显示。
 
 四  case OFFLINE 某人下线
 寻找好友中是否有这个人,有则保存其离线在状态,然后让其变灰显示。
 
 五 case ONLINE_OK  上线成功
 设置任务栏图标为上线状态,启动请求每用户详细资料的线程
 
 六 case ONHIDE_OK  隐身登陆成功
    设置任务栏图标为隐身状态,启动请求每用户详细资料的线程
 
其它的信息的处理的详细情况,这里就不介绍了,客户端的界面设计较为繁琐细节方面很多,写起来较为麻烦,而且,我客户端也没有完成设计完成。

第 5 章  全文总结与工作展望

§5.1 全文总结
 本文重点讨论客户端/服务器的程序的设计方法和过程,对整个系统进行了详细设计,利用面向对象的方法,进行整个系统的设计。
本文主要做了以下工作:
 ⑴ 列举了网络寻呼软件的系统和界面需求。
 ⑵ 陈述了客户端/服务器程序的设计原理和过程
 ⑶ 根据系统需求,进行整个系统的各个部分的详细设计。
 
§5.2 工作展望
 本文主要是对本软件服务器端的设计作了比较详细的介绍,并对服务器端进行了初步的开发。而客户端的设计有很多都需要完善。客户端是给用户使用的,从方便和美观上,还都还有很多需要完善的地方。而且,由于时间关系,客户端还有些功能没有完全。如果要使本系统成为一个实际应用系统并在局域网上实际应用,除了完成客户端的功能外,笔者认为还应做以下的完善和开发工作:
 ⑴ 进一步完善底层通讯协议,使能够更好的处理数据的发送和接受。
 ⑵ 多线程下的对临界数据访问的问题。
 ⑶ 对发送的数据,进行一定的加密措施,使之更加安全可靠。
 ⑷ 对本地用户的密码的加密问题,在本程序中,没有对本地密码进行加密。
 ⑸ 在客户端系统,功能的设置有待进一步丰富,功能的实现还有
待完善和改进。
 ⑹ 在客户端处理中,响应从服务器发来的数据,是在主线程里执行的,所以,当接受数据忙时,就会出现没有响应的情况。进一步考虑,如何能改善这种情况。
第 6 章  附录

§6.1 查错日志

四月十五日
 编写socket的程序,必须在程序启动初始化时调用AfxSocketInit()函数,否则,使用socket通讯,将得不到任何结果,没有任何响应

四月十八日
 在 *((DWORD*)m_szResponse+m_nrLength)=pData->This;
中,少加一个括号,使响应信息回应不正确:浪费1:30的时间。
shall be :  *((DWORD*)(m_szResponse+m_nrLength))=pData->This;

四月二十一日
 虽然说,为了很编译加快,最好不要头文件中包含头文件,但:
1。如果从一个自己写的类进行继承,则必须包含此类头文件
2。注意,每个实现文件,都要包含Stdafx.h

四月二十五日
 记住,在SQL 语句中,字符串要用' ' ,单引号,使用””双引号,访问数据库将提示SQL错误

四月二十八日
 取数据库中的字符串数据时,如果用普通方法
msg.name=*(s1.m_pstring);
如果此字符串为空,则会出异常,
解决方法:
如果是字符串,可用  rs.GetFieldValue(3,msg.name);  or
if(s1.m_pstring!=NULL)msg.name=*(s1.m_pstring);

五月八日
if(i==m_nSendMaxIndex)
 while(!m_aSendData[m_nSendMaxIndex])m_nSendMaxIndex--;
should be
while(!m_aSendData[m_nSendMaxIndex]&&m_nSendMaxIndex>0)m_nSendMaxIndex--;
否则,将使m_nSendMaxIndex减为负数

五月十日
DWORD This=*(buff+nRead-4);
与是有很大不同的,下面一个才正确。上一个取出一个字符数据,然后转化为DWORD赋值给This
DWORD This=*((DWORD*)(buff+nRead-4));
查这个错误,花了2小时,
客户端/服务器程序不大好调试,两个都得运行,一起调试,而且还是多线程的,总之调试起来使麻烦。

五月十五日
今天是最糟的一天,全天都在查错,修改一个地方,可能会有许多地方都被牵连到了,都需要修改,在修改时,不免又出现了新的错误,这真是个大问题。
发现了一个非常奇怪的问题,只是一个非常简单,非常。。。。。
忘记写break;

五月十七日
我今天把底层通讯的检查回应消息是否回来的算法修改了。
以前的算法是:
 有一个缓冲区,发送一个数据,就把发送这个数据的内存起始地址存在这个缓冲区中,当回应消息发回来时,就是这个缓冲区中找,找这(This)与这内存地址相同的,就把它赋为0,发送程序若在这个缓冲区中没有找到这个内存地址,就表示数据发送成功,找到了,就表示还不成功。
 现在想来,

首页 上一页 13 14 15 16 17 下一页 尾页 16/17/17

免费vc++网上寻呼QICQ源代码(附带文档)(十六)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:免费vc++医药管理系统+文档 下一篇:免费vc中国象棋软件
推荐论文 本专业最新论文
Tags:免费 网上 寻呼 QICQ 源代码 附带 文档 2010-04-02 16:32:55【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有