网络聊天系统源代码 第14页


网络聊天系统源代码 第14页
过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。
1.2.3.虚拟函数和动态约束
MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。本书将充分的展示MFC调用虚拟函数和消息处理函数的内幕,让读者对MFC的编程接口有清晰的理解。
1.3 Access
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual   Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是, Access的功能足够强大,足以应付一般的数据管理及处理需要。Access可以实现建立数据库、报表,以及对数据库、报表的修改、查询等功能。
Access简要技术特点:
1、Access是 Microsoft Office 的一个组件,一个前后台结合的数据库“软件”。
2、Access不是一种存储格式,是一种软件
3、Access 中的一些对象可以被 VB 调用,但是必须在调用的机器上安装 ACCESS 这个软件(COPY一个MDB文件是不够的)或者安装额外的 ActiveX 控件
4、这里指的纯 ACCESS 环境就是指没有使用任何其他软件,直接使用 ACCESS 界面以及存储格式的环境,也就是不能脱离 ACCESS 运行时的环境。上面说的 ASP + MDB / VB + MDB 等等都不是所谓的“纯 ACCESS 环境”
5、MDB 是一种文件格式,其中的数据以特定方式组织起来,而 ACCESS 这种软件的默认存储格式正好是 MDB
6、ACCESS 这个软件本身就具有开发者使用的界面和适合于“最终用户”的界面,也就是我们通常说的前后台结合。
2 相关技术和工具比较
2.1VC和VB两者的比较:
1)两者的设计出发点不一样.vc更注重程序的效率,而vb则强调易用性
2)VC为编译型,编译后得到的程序可直接运行。VB为解释型,编译后得到的文件需要在VB环境里解释执行,执行情况类似于VB Script这样的脚本语言。
3)两者对对象的支持程度不一样.vc是面向对象的,而vb则是基于对象的。因为vb只有封装的特性,却不支持继承和多态.
2.2 ACCESS、SQL Server与Oracle数据库的比较
2.2.1开放性
SQL Server、ACCESS只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle:能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
2.2.2安全性
ACCESS:没有获得任何安全证书,密码保护比较弱。
SQL server:没有获得任何安全证书。
Oracle Server:获得最高认证级别的ISO标准认证。
2.2.3性能
ACCESS:多用户,大数据时性能不佳。
SQL Server:多用户时性能不佳。
Oracle:性能最高, 保持windowsNT下的TPC-D和TPC-C的世界记录。
2.2.4客户端支持及应用模式
ACCESS:B/S结构、C/S结构,支持windows客户端与服务器,可以用ADO,DAO,OLEDB,ODBC连接。
SQL Server:B/S结构、C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB,ODBC连接。
Oracle:多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。
2.2.5操作简便
ACCESS:操作简单。      
SQL Server:操作简单,但只有图形界面。
Oracle:较复杂, 同时提供GUI和命令行,在windowsNT和unix下操作相同。

3 Win Socket网络编程
前创建一个新的套接字
格式:SOCKET PASCAL FAR socket(int af,int type,int procotol);
参数:af: 通信发生的区域
type: 要建立的套接字类型
procotol: 使用的特定协议

2、指定本地地址——bind()
功能:将套接字地址与所创建的套接字号联系起来。
格式:int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);
参数:s: 是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。
其它:没有错误,bind()返回0,否则SOCKET_ERROR
地址结构说明:
 struct sockaddr_in
{
short sin_family;//AF_INET
u_short sin_port;//16位端口号,网络字节顺序
struct in_addr sin_addr;//32位IP地址,网络字节顺序
char sin_zero[8];//保留
}

3、建立套接字连接——connect()和accept()
功能:共同完成连接工作
格式:int PASCAL FAR connect(SOCKET s,const struct sockaddr FAR * name,int namelen);
 SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen);

参数:同上

 << 上一页  [11] [12] [13] [14] [15] [16] [17] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有