使用vc++的网络编程总结[1].doc

使用vc++的网络编程总结[1].doc

ID:1326364

大小:552.50 KB

页数:30页

时间:2017-11-10

使用vc++的网络编程总结[1].doc_第1页
使用vc++的网络编程总结[1].doc_第2页
使用vc++的网络编程总结[1].doc_第3页
使用vc++的网络编程总结[1].doc_第4页
使用vc++的网络编程总结[1].doc_第5页
资源描述:

《使用vc++的网络编程总结[1].doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用VC++的网络编程总结1.套接字编程原理1.1Client/server通信模型1.2WindowsSockets规范1.3套接字1.3.1套接字定义1.3.2分类1.3.3套接字的作用1.3.4端口与地址1.3.5套接口属性2.基本的WindowsSocketsAPI编程2.1常用函数2.2TCP实例2.3UDP实例2.4Socket通信阻塞的解决方法3.MFC下的Socket编程的类3.1CAsyncSocket类3.2CSocket类3.3WindowsSockets:带存档的套接字的工作方式3.4流式套接字通信的

2、操作顺序3.5使用CAsyncSocket类3.6从套接字类派生3.7套接字通知3.8一个使用CSocket类的网络通信实例3.8.1服务器端应用程序设计(ServerDemo)3.8.2客户端应用程序设计(项目名称ClientDemo)4.套接字的托管实现4.1System::Net::Sockets命名空间4.2实例:一个新邮件检查器1.套接字编程原理一个完整的网间通信进程需要由两个进程组成,并且只能用同一种高层协议。也就是说,不可能通信的一端用TCP,而另一端用UDP。一个完整的网络信需要一个五元组来标识:协议、本地地

3、址、本地端口号、远端地址、远端端口号。1.1Client/server通信模型在客户/服务器模式中我们将请求服务的一方称为客户(client),将提供某种服务的一方称为服务器(server)。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务—对客户的请求作出适当的反应。虽然基于连接的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过无连接的接口提供的。客户机/服务器的请求/响应过程

4、示意图如下所示。图1客户/服务器通信模型通过上面的分析,我们不难理解一个一个完整的网络应用程序包括客户端和服务器两个部分。客户与服务器进程的作用是非对称的,因此编码不同。服务进程一般是等待客户请求而启动的,只要系统运行,该服务进程一直存在,直到终止或强迫终止。1.2WindowsSockets规范WindowsSockets规范是90年代初Microsoft公司联合其他几家大公司共同制定的一套在Windows下的二进制兼容网络编程接口规范。它以U.C.Berkeley大学BSDUNIX中流行的Socket接口为基础,主要在其

5、上扩充了一组针对Windows的扩展库函数,增加了符合Windows消息驱动特性的网络事件异步选择机制,以使程序员能够充分利用Windows消息驱动机制进行编程。WindowsSockets的用途是将基础网络抽象出来,这样,您不必对网络非常了解,并且您的应用程序可在任何支持套接字的网络上运行。它为应用程序开发者定义了一套简单统一的API,并让各家网络软件供应商共同遵守。WindowsSockets规范从90年代初的1.0版本开始,经过不断的完善和发展,目前已经有了WindowsSockets2版本。值得注意的是,Micros

6、oft的MFC库现在只支持WindowsSockets1版本,不支持WindowsSockets2版本。MFC提供了两个类用以封装WindowsSocketsAPI。一个是CAsyncSocket类,它主要是提供给那些具有一定网络编程经验,希望同时拥有SocketAPI编程的灵活性和类库编程便利性的开发者的。另一个是CSocket类,它由CAsyncSocket类派生,它具有更高的抽象化,致力于简化网络编程所需的操作。1.3套接字1.3.1套接字定义套接字是一个通信终结点,它是Sockets应用程序用来在网络上发送或接收数据

7、包的对象。套接字具有类型,与正在运行的进程相关联,并且可以有名称。目前,套接字一般只与使用网际协议组的同一“通信域”中的其他套接字交换数据。使用套接字的应用程序间通信模型如图2所示。1.3.2分类可用的套接字类型有以下两种:1.3.2.1流式套接字流式套接字提供没有记录边界的数据流,即字节流。字节流能确保以正确的顺序无重复地被送达。1.3.2.2数据报套接字数据报套接字支持面向记录的数据流,但不能确保能被送达,也无法确保按照发送顺序或不重复。“有序”指数据包按发送的顺序送达。“不重复”指一个特定的数据包只能获取一次。这两种套

8、接字都是双向的,是可以同时在两个方向上(全双工)进行通信的数据流。注意   在某些网络协议下(如XNS),流可以面向记录,即作为记录流而非字节流。但在更常用的TCP/IP协议下,流为字节流。WindowsSockets提供与基础协议无关的抽象化级别。1.3.3套接字的作用套接字的作用非常大

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。