1 / 77
文档名称:

10网络编程.doc

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

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

分享

预览

10网络编程.doc

上传人:非学无以广才 2021/1/10 文件大小:2.13 MB

下载得到文件列表

10网络编程.doc

相关文档

文档介绍

文档介绍:第十章 网络编程
作为本书读者来说, 大约不可能不知道网络吧。 网络, 尤其是Internet, 发展速度超出了任何人任何大胆预料。 一个软件实现网络上相关应用显然是必不可少, 所以, 我们绝对有必需学****一下网络编程。
在网络环境下假如需要实现一个应用程序和另一个应用程序信息交换, 能够有多个方法。 在Windows 操作系统还没有出现之前, Internet 实际上就已经出现了, 最早站点就是部分 UNIX 机, 当初一组称为Berkeley 套接字成为Internet 上各UNIX站点实现TCP/IP通讯标准。 Windows Socket(Winsock) API就是基于BSD版本套接字发展而来, 我们能够利用这些特定接口开发网络应用程序。 本章就首先介绍多种套接字, 然后介绍相关MFC Winsock类及其编程内容, 再介绍消息API及其应用, 最终给出一个Internet应用实例。
本章包含以下内容:
套接字
MFC Winsock类
WinSock编程实例
消息API(MAPI)
实现Internet应用
10.1 套接字
Winsock 规范定义了一个动态连接库接口, 。 开发商能够自行编写代码实现接口, 在应用程序中能够调用这些接口函数。 接口函数使用和不一样开发商没相关系, 尽管不一样开发商实现过程有所不一样 , 但函数调用时, 函数名、 参数设置和返回值类型全部由接口确定, 是完全一致。 比如在Windows 95和Windows NT中套接字动态连接库文件就有所不一样, 但一个32位Winsock 应用程序能够调用对应动态连接库DLL中Winsock函数, 从而既能够在Windows 95环境下实施, 又能够不加任何修改地在Windows NT环境中实施。
Winsock在开发用于信息交换应用程序时是很有用, 我们能够利用套接字传输数据包, 以达成通信目标。 套接字本身能够了解为通信端点, 它所提供数据收发机制能够方便地用于网络通信。
套接字能够有两种方法, 即数据报套接字和流式套接字。
数据报套接字(Datagram Sockets)
这种套接字所提供通信方法并不可靠, 即不能确保所传送数据包一定正当, 也不能确保数据包接收次序和发送次序完全一致, 甚至数据包是否能够安全传送到目标端全部不能确保。
因为系统提供数据报套接字功效有限, 所以我们必需在编程时充足考虑多种可能出现异常情况, 比如, 怎样控制数据包发送和接收次序, 怎样确保数据包不被反复发送, 另外怎样数据包没有发送应该怎样处理, 这些工作就需要我们自已完成了。
更关键是, 在编写复杂网络应用程序时, 还必需考虑数据报可靠性, 因为假如只依靠于系统提供支持, 数据报套接字可靠性是极差, 假如一个大型网络通信应用程序常常出现瓦解, 那么带来损失将是不可估量。
数据报套接字关键用途是以广播方法发送数据, 如统计型数据等。
流式套接字(Stream Sockets)
流式套接字含义是数据发送后, 需要按次序而且不反复地由目标端接收。 这是一个可靠数据传输方法, 对于单个数据报, 和完整数据包, 流式套接字全部能够提供这种面向连接数据传输。
流式套接字使用要广泛得多, 尤其是对于大量数据发送, 或要求数据接收次序时, 全部需要使用流式套接字。
在使用套接字进行网络编程时, 有一个很关键概念即套接字端口。 在Internet 上每一个站点全部有对应数字化地址, 我们称之为IP地址。 形式通常为
NUM1 . NUM2 . NUM3 . NUM4
即用小数点分隔4个数字, 。 假如经过网络, , 此请求将附带一个端口号信息, 端口号是一个整数值, 它标识了所请求应用程序。 必需注意, 有部分端口是系统为标准应用预留, 如端口80关键用于Web
服务器监听用户应用程序如Netscape Navigator 浏览器发出Web 文档请求。
有部分应用程序在设计信息发送时并不是基于连接, 但这种发送方法是没有保障, 即我们不能确定数据确实发送出去了, 也不能确定数据接收方身份。 不过对于部分广播性质信息发送, 这种方法是比较适合。 如经典时间服务, 时间服务器将目前时间发送给其所在范围内每一台机器, 至于对方是否接收, 或对方接收到时间信息后作何响应, 时间服务器全部不关心。
我们在应用程序中所使用套接字通常是基于连接, 即两个应用程序各自生成一个套接字, 这么在两个对应套接字之间就建立了一个连接, 两个应用程序就是连接两端。