Windows套接字:背景

本文说明 Windows 套接字的特性和用途。 还文章:

  • 定义术语“套接字”。

  • 描述 SOCKET 处理数据类型。

  • 描述套接字的使用。

Windows 套接字规范定义了 Microsoft Windows 的二进制兼容网络编程接口。 Windows 套接字根据在 Berkeley Software Distribution (BSD,版本 4.3) 的 UNIX 套接字实现从 Berkeley 的美国加利福尼亚大学。 规范由两个 BSD 样式套接字实例和扩展特定于窗口。 使用 Windows 套接字许可证应用程序通过符合 Windows 套接字 API 的任何网络通信。 在 Win32 中,Windows 套接字提供线程安全。

许多 web 软件供应商支持 Windows 套接字在网络协议下包括传输控制协议 /Internet 协议 (TCP/IP),复制 internet 系统 (XNS),迪吉多的 DECNet 协议、Novell Corporation 的 Internet 数据包交换/排序的打包的交换 (IPX/SPX) 和其他语言。 虽然当前 Windows 套接字规范定义了 TCP/IP 套接字的抽象,所有 web 协议能符合 Windows 套接字通过提供其动态链接库 (DLL) 自身的版本实现 Windows 套接字。 商务应用程序的示例编写的 Windows 套接字包括 X Windows server、最终模拟器和电子邮件系统。

备注

Windows 套接字的目的是提取基础网络,因此您不必了解该网络,所以您的应用程序在支持套接字的所有网络上运行。因此,本文档不讨论网络协议详细信息。

选件 Microsoft 基础类库 (mfc) 通过提供两选件类支持编程时 Windows 套接字 API。 这些选件类之一,CSocket,还提供了高级抽象简化了网络通信编程。

Windows 套接字规范,Windows 套接字:计算 Microsoft Windows 下网络上的打开接口现在,在版本 1.1 中,已经开发了作为一个打开的网络连接标准由各和公司的大型组在 TCP/IP 社区是免费备使用。 使用 internet 协议套件,编程模型的套接字当前支持“通信字段”。 规范可在 Windows SDK。

提示

由于套接字使用 internet 协议套件,它们是支持有关“信息的公路的 Internet 通信的应用程序的优先级进路”。

存储的定义

套接字对通信终结点 (Windows 套接字应用程序发送或接收数据包在网络的对象。 套接字具有类型以及与进程中运行,因此,它可以有名称。 目前,泛型套接字只交换数据与同一“通信字段的其他套接字,”使用 internet 协议套件。

两套接字是双向的;它们是在两个方向可同时传递的数据流 (全双工)。

两个套接字类型可用:

  • 流套接字

    流提供不记录套接字边界的数据流:字节流。 请确保正确发送和排序流和 unduplicated。

  • 数据进行套接字

    数据进行套接字支持不能保证提供的记录面向数据流并不可排序如发送或 unduplicated。

“排序”表示数据包按发送的顺序发送。“ Unduplicated”意味着您获取特定数据包次。

备注

在这些网络协议下,例如 XNS,流可能要为记录流放置的记录,而不是字节流。在较常见的 TCP/IP 协议下,但是,流是单词的限制。Windows 套接字提供抽象级别基础协议无关。

有关,并使用的类型套接字中的这些类型的信息的情况,请参见 Windows 套接字:流套接字Windows 套接字:数据进行套接字

SOCKET 数据类型

每个 MFC 套接对象封装句柄 Windows 套接字对象。 此句柄的数据类型是 套接字套接字 处理类似于窗口的 HWND。 MFC 套接字选件类在中封装的句柄提供操作。

套接字 数据类型在 Windows SDK详细介绍。 请参见“存储数据类型和错误值”在 Windows 套接字下。

套接字的使用

套接字非常有用。至少通信上下文:

  • 客户端/服务器模型。

  • 对方案,如传报应用。

  • 在函数调用,进行远程过程调用 (RPC) 由具有接收的应用程序解释消息。

提示

理想的情况下使用 MFC 套接字是您编写一种通信的两端:使用 MFC 在两端。有关本主题的更多信息,包括如何管理种情况下,当使用非 MFC 应用程序时通信,请参见 Windows 套接字:字节排序

有关更多信息,请参见 Windows 套接字规范:ntohsntohlhtonshtonl。 此外,请参见以下主题:

请参见

概念

在MFC的Windows套接字