| 订阅 | 在线投稿
分享
 
 
 

Windows Sockets:背景知识

来源:互联网  宽屏版  评论
2008-06-01 02:03:07

本文介绍 Windows Sockets 的性质和用途。其他内容还包括:

定义术语“套接字”。

描述 SOCKET 句柄数据类型。

描述套接字的用途。

Windows Sockets 规范为 Microsoft Windows 定义了一个二进制兼容网络编程接口。Windows Sockets 基于 Berkeley Software Distribution(BSD,4.3 版)中的 UNIX 套接字实现,后者是美国加州大学伯克利分校开发的。该规范包括针对 Windows 的 BSD 样式套接字例程和扩展。通过使用 Windows Sockets,应用程序能够在任何符合 Windows Sockets API 的网络上通信。在 Win32 上,Windows Sockets 提供线程安全。

许多网络软件供给商支持网络协议下的 Windows Sockets,这些协议包括:传输控制协议/网际协议 (TCP/ip)、Xerox 网络系统 (XNS)、Digital Equipment Corporation 的 DECNet 协议和 Novell Corporation 的互联网包交换协议/顺序分组报文交换协议 (IPX/SPX) 等。虽然目前的 Windows Sockets 规范定义了 TCP/IP 的套接字抽象化,但任何网络协议都可以通过提供自己版本的、实现 Windows Sockets 的动态链接库 (DLL) 来满足 Windows Sockets。用 Windows Sockets 编写的商用应用程序示例包括 X Windows 服务器、终端模拟器和电子邮件系统。

注重: Windows Sockets 的用途是将基础网络抽象出来,这样,您不必对网络非常了解,并且您的应用程序可在任何支持套接字的网络上运行。因此,本文档不讨论网络协议的细节内容。

Microsoft 基础类库 (MFC) 通过提供两个类来支持使用 Windows Sockets API 进行编程。其中一个类为 CSocket ,它提供高级抽象化来简化网络通信编程。

Windows Sockets 规范“Windows Sockets:用于 Microsoft Windows 环境下的网络计算的开放接口”现在为 1.1 版本,它是 TCP/IP 群体中一个由个人和公司组成的大团体开发的,是一个开放的网络标准,可免费使用。套接字编程模型当前支持一个“通信域”,该“通信域”使用网际协议组 (Internet PRotocol Suite)。该规范可在 Platform SDK 中获得。

提示: 因为套接字使用网际协议组,所以它们对于支持“信息高速公路”上 Internet 通信的应用程序是首选方式。

套接字的定义

套接字是一个通信终结点,它是 Windows Sockets 应用程序用来在网络上发送或接收数据包的对象。套接字具有类型,与正在运行的进程相关联,并且可以有名称。目前,套接字一般只与使用网际协议组的同一“通信域”中的其他套接字交换数据。

这两种套接字都是双向的,是可以同时在两个方向上(全双工)进行通信的数据流。

可用的套接字类型有以下两种:

流式套接字

流式套接字提供没有记录边界的数据流,即字节流。字节流能确保以正确的顺序无重复地被送达。

数据文报套接字

数据文报套接字支持面向记录的数据流,但不能确保能被送达,也无法确保按照发送顺序或不重复。

“有序”指数据包按发送的顺序送达。“不重复”指一个特定的数据包只能获取一次。

注重: 在某些网络协议下(如 XNS),流可以面向记录,即作为记录流而非字节流。但在更常用的 TCP/IP 协议下,流为字节流。Windows Sockets 提供与基础协议无关的抽象化级别。

有关上述类型以及各种套接字适用情形的信息,请参见 Windows Sockets:流式套接字和 Windows Sockets:数据文报套接字。

SOCKET 数据类型

每一个 MFC 套接字对象封装一个 Windows Sockets 对象的句柄。该句柄的数据类型为 SOCKET。SOCKET 句柄类似于窗口的 HWND。MFC 套接字类提供对封装句柄的操作。

Platform SDK 中具体描述了 SOCKET 数据类型。

套接字的用途

套接字的作用非常大,至少在下面三种通信上下文中如此:

客户端/服务器模型。

对等网络方案,如聊天应用程序。

通过让接收应用程序将消息解释为函数调用来进行远程过程调用 (RPC)。

提示: 最适合使用 MFC 套接字的情况是当同时编写通信的两端时:在两端都使用 MFC。有关该主题(包括如何治理与非 MFC 应用程序通信的情况)的更多信息,请参见 Windows Sockets:字节排序 。

Windows Sockets:背景知识
更多内容请看Windows操作系统安全集 Windows操作系统安装 Windows频道专题,或

本文介绍 Windows Sockets 的性质和用途。其他内容还包括: 定义术语“套接字”。 描述 SOCKET 句柄数据类型。 描述套接字的用途。 Windows Sockets 规范为 Microsoft Windows 定义了一个二进制兼容网络编程接口。Windows Sockets 基于 Berkeley Software Distribution(BSD,4.3 版)中的 UNIX 套接字实现,后者是美国加州大学伯克利分校开发的。该规范包括针对 Windows 的 BSD 样式套接字例程和扩展。通过使用 Windows Sockets,应用程序能够在任何符合 Windows Sockets API 的网络上通信。在 Win32 上,Windows Sockets 提供线程安全。 许多网络软件供给商支持网络协议下的 Windows Sockets,这些协议包括:传输控制协议/网际协议 (TCP/ip)、Xerox 网络系统 (XNS)、Digital Equipment Corporation 的 DECNet 协议和 Novell Corporation 的互联网包交换协议/顺序分组报文交换协议 (IPX/SPX) 等。虽然目前的 Windows Sockets 规范定义了 TCP/IP 的套接字抽象化,但任何网络协议都可以通过提供自己版本的、实现 Windows Sockets 的动态链接库 (DLL) 来满足 Windows Sockets。用 Windows Sockets 编写的商用应用程序示例包括 X Windows 服务器、终端模拟器和电子邮件系统。 注重: Windows Sockets 的用途是将基础网络抽象出来,这样,您不必对网络非常了解,并且您的应用程序可在任何支持套接字的网络上运行。因此,本文档不讨论网络协议的细节内容。 Microsoft 基础类库 (MFC) 通过提供两个类来支持使用 Windows Sockets API 进行编程。其中一个类为 CSocket ,它提供高级抽象化来简化网络通信编程。 Windows Sockets 规范“Windows Sockets:用于 Microsoft Windows 环境下的网络计算的开放接口”现在为 1.1 版本,它是 TCP/IP 群体中一个由个人和公司组成的大团体开发的,是一个开放的网络标准,可免费使用。套接字编程模型当前支持一个“通信域”,该“通信域”使用网际协议组 (Internet PRotocol Suite)。该规范可在 Platform SDK 中获得。 提示: 因为套接字使用网际协议组,所以它们对于支持“信息高速公路”上 Internet 通信的应用程序是首选方式。 套接字的定义 套接字是一个通信终结点,它是 Windows Sockets 应用程序用来在网络上发送或接收数据包的对象。套接字具有类型,与正在运行的进程相关联,并且可以有名称。目前,套接字一般只与使用网际协议组的同一“通信域”中的其他套接字交换数据。 这两种套接字都是双向的,是可以同时在两个方向上(全双工)进行通信的数据流。 可用的套接字类型有以下两种: 流式套接字 流式套接字提供没有记录边界的数据流,即字节流。字节流能确保以正确的顺序无重复地被送达。 数据文报套接字 数据文报套接字支持面向记录的数据流,但不能确保能被送达,也无法确保按照发送顺序或不重复。 “有序”指数据包按发送的顺序送达。“不重复”指一个特定的数据包只能获取一次。 注重: 在某些网络协议下(如 XNS),流可以面向记录,即作为记录流而非字节流。但在更常用的 TCP/IP 协议下,流为字节流。Windows Sockets 提供与基础协议无关的抽象化级别。 有关上述类型以及各种套接字适用情形的信息,请参见 Windows Sockets:流式套接字和 Windows Sockets:数据文报套接字。 SOCKET 数据类型 每一个 MFC 套接字对象封装一个 Windows Sockets 对象的句柄。该句柄的数据类型为 SOCKET。SOCKET 句柄类似于窗口的 HWND。MFC 套接字类提供对封装句柄的操作。 Platform SDK 中具体描述了 SOCKET 数据类型。 套接字的用途 套接字的作用非常大,至少在下面三种通信上下文中如此: 客户端/服务器模型。 对等网络方案,如聊天应用程序。 通过让接收应用程序将消息解释为函数调用来进行远程过程调用 (RPC)。 提示: 最适合使用 MFC 套接字的情况是当同时编写通信的两端时:在两端都使用 MFC。有关该主题(包括如何治理与非 MFC 应用程序通信的情况)的更多信息,请参见 Windows Sockets:字节排序 。 [url=http://www.wangchao.net.cn/bbsdetail_1785248.html][img]http://image.wangchao.net.cn/it/1323424143956.gif[/img][/url] 更多内容请看Windows操作系统安全集 Windows操作系统安装 Windows频道专题,或
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有