1 / 72
文档名称:

10网络编程.doc

格式:doc   大小:2,156KB   页数:72页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

10网络编程.doc

上传人:xzh051230 2019/1/14 文件大小:2.11 MB

下载得到文件列表

10网络编程.doc

相关文档

文档介绍

文档介绍:作为本书的读者来说,大概不可能不知道网络吧。网络,,发展速度超过了任何人任何大胆的预料。一个软件实现网络上的相关应用显然是必不可少的,因此,我们绝对有必要学****一下网络编程。在网络环境下如果需要实现一个应用程序与另一个应用程序的信息交换,可以有多种方式。在Windows操作系统还没有出现之前,实际上就已经出现了,最早的站点就是一些UNIX机,上各UNIX站点实现TCP/IP通讯的标准。WindowsSocket(Winsock)API就是基于BSD版本套接字发展而来的,我们可以利用这些特定接口开发网络应用程序。本章就首先介绍各种套接字,然后介绍有关MFCWinsock类及其编程内容,再介绍消息API及其应用,应用实例。本章包括以下内容:套接字MFCWinsock类WinSock编程实例消息API(MAPI),。开发商可以自行编写代码实现接口,在应用程序中可以调用这些接口函数。接口函数的使用与不同的开发商没有关系,尽管不同开发商实现过程有所不同,但函数调用时,函数名、参数设置以及返回值类型都由接口确定,是完全一致的。例如在Windows95和WindowsNT中套接字动态连接库文件就有所不同,但一个32位的Winsock应用程序可以调用相应的动态连接库DLL中的Winsock函数,从而既可以在Windows95环境下执行,又可以不加任何修改地在WindowsNT环境中执行。Winsock在开发用于信息交换的应用程序时是非常有用的,我们可以利用套接字传递数据包,以达到通信的目的。套接字本身可以理解为通信端点,它所提供的数据收发机制可以方便地用于网络通信。套接字可以有两种方式,即数据报套接字和流式套接字。数据报套接字(DatagramSockets)这种套接字所提供的通信方式并不可靠,即不能保证所传送的数据包一定合法,也不能保证数据包接收顺序与发送顺序完全一致,甚至数据包是否能够安全传送到目的端都不能保证。由于系统提供的数据报套接字功能有限,因此我们必须在编程时充分考虑各种可能出现的异常情况,例如,如何控制数据包发送和接收顺序,如何保证数据包不被重复发送,另外如何数据包没有发送应该如何处理,这些工作就需要我们自已完成了。更重要的是,在编写复杂的网络应用程序时,还必须考虑数据报的可靠性,因为如果只依赖于系统提供的支持,数据报套接字的可靠性是极差的,如果一个大型的网络通信应用程序经常出现崩溃,那么带来的损失将是不可估量的。数据报套接字的主要用途是以广播方式发送数据,如记录型数据等。流式套接字(StreamSockets)流式套接字的含义是数据发送后,需要按顺序而且不重复地由目的端接收。这是一种可靠的数据传输方式,对于单个的数据报,以及完整的数据包,流式套接字都可以提供这种面向连接的数据传输。流式套接字的使用要广泛得多,特别是对于大量的数据发送,或要求数据接收顺序时,都需要使用流式套接字。在使用套接字进行网络编程时,有一个非常重要的概念即套接字的端口。上每一个站点都有相应的数字化地址,我们称之为IP地址。形式一般为 NUM1 . NUM2 . NUM3 . NUM4 即用小数点分隔的4个数字,。如果通过网络,,此请求将附带一个端口号信息,端口号是一个整数值,它标识了所请求的应用程序。必须注意,有一些端口是系统为标准应用预留的,scapeNavigator浏览器发出的Web文档请求。有一些应用程序在设计信息发送时并不是基于连接的,但这种发送方式是没有保障的,即我们不能确定数据确实发送出去了,也不能确定数据接收方的身份。不过对于一些广播性质的信息发送,这种方式是比较适合的。如典型的时间服务,时间服务器将当前时间发送给其所在范围内的每一台机器,至于对方是否接收,或对方接收到时间信息后作何响应,时间服务器都不关心。我们在应用程序中所使用的套接字一般是基于连接的,即两个应用程序各自生成一个套接字,这样在两个对应的套接字之间就建立了一个连接,两个应用程序就是连接的两端。如果已经建立了连接,意味着两端的应用程序可以在此通路上发送和接收信息了。需要注意的是,在两个端点间建立连接会带来一定的时间延迟,一般来讲,延迟影响并不大,但对于实时性要求比较高的信息传送而言,就不太适合了,因此也可以考虑无连接的通信方式。,在VisualC++中用套接字编程就意味着需要调用套接字动态连接库DLL中的相关API接口函数,即所有的功能的以函数为单位实现的。提出面向对象概念之后,为了方便程序的编写和维护,需要自己建立套接字类,利用套接字类来封装有关