使用套接字进行连接 (HTML)
[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
使用 Windows.Networking.Sockets 命名空间中的功能以及 Windows 应用商店应用中的 TCP 或 UDP 套接字发送和接收数据。
套接字提供用来发送和接收网络数据的低级接口。套接字所使用的主类包括:
- DatagramSocket - 用于支持使用 UDP 数据报套接字的网络通信。
- StreamSocket - 用于支持使用 TCP 流套接字的网络通信。
- StreamSocketListener - 用于支持对使用 TCP 流套接字的传入网络连接的侦听。
在 Windows.Networking.Sockets 命名空间中,以上列出的主类还有许多相关的支持类,用于配合它们使用。
开发人员受众
适用于对在其 Windows 运行时应用中使用套接字进行网络通信感兴趣的 Javascript/C#/VB.NET/C++ 开发人员。此功能包括 TCP 和 UDP 套接字,其中包括使开发人员能够实现其他高层网络协议的 UDP 多播。应用可将 TCP 和 UDP 套接字用于建立客户端连接、侦听连接和作为服务器使用或侦听客户端和服务器操作。
根据应用的具体要求,考虑使用以下协议。
如果你的应用 | 使用 |
---|---|
连接到使用现有协议(例如用于邮件通信的 SMTP、POP、IMAP 或 MAPI)的网络服务,且这些协议不能被其他网络功能直接支持 |
TCP 或 UDP 套接字 |
连接到同一本地网络中的另一台计算机。 |
TCP 或 UDP 套接字 |
需要一个可通过 HTTP 代理进行通信的简单请求\响应协议。 |
可使用 C#、VB.NET 和 C++ 的表征状态转移 (REST) API |
需要类套接字语义(异步双向传输)进行跨网络连接,包括通过 HTTP 代理。 |
WebSockets |
套接字受 Windows.Networking.Sockets 和 Windows.Networking 命名空间中的类支持。
Windows 8 还引入了一种新的套接字类型,WebSocket。有关详细信息,请参阅使用 WebSocket 进行连接以及 MessageWebSocket 和 StreamWebSocket 类。
本节内容
主题 | 描述 |
---|---|
如何使用流套接字进行连接 | 学习如何借助使用 TCP 的流套接字连接到网络资源,以便发送和接收数据。 |
如何使用数据报套接字进行连接 | 学习如何借助使用 UDP 的数据报套接字连接到网络资源,以便发送和接收数据。 |
如何使用高级套接字控件 | 学习如何在使用 DatagramSocket、StreamSocket 或 StreamSocketListener 时使用高级套接字控件。 |
如何使用 TLS/SSL 确保套接字连接的安全 | 学习如何在使用 StreamSocket 时借助 TLS/SSL 确保套接字连接的安全。 |
如何针对套接字操作设置超时 | 了解如何针对网络套接字操作设置超时,以便对等待操作完成的时间进行限制。 |
使用带有网络隔离功能的套接字
Windows 8.1、Windows Phone 8.1 和 Windows Server 2012 R2 中的网络隔离功能,使开发人员能够控制和限制 Windows 运行时应用的网络访问。 并非所有的应用都需要访问网络。但是,对于那些需要访问网络的应用,Windows 8.1 和 Windows Server 2012 R2 通过选择适当的功能提供不同级别的访问网络。
网络隔离功能允许开发人员为每个应用指定所需的网络访问范围。没有指定相应范围的应用被阻止访问特定类型的网络和特定类型的网络请求(出站客户端发起的请求或未经请求的入站请求和出站客户端发起的请求)。 设置并强制执行网络隔离功能可确保如果一个应用变得具有威胁,则该应用只能访问已明确授权它访问的网络。这大大降低了对其他应用程序和 Windows 的范围影响。
网络隔离功能可影响尝试访问网络的 Windows.Networking.Sockets 和相关命名空间中的任何类元素。 Windows 会主动强制实现网络隔离。如果尚未启用相应的网络功能,则调用 Windows.Networking.Sockets 命名空间中的类元素,可能会因为网络隔离导致网络访问失败。
在构建应用时,在应用部件清单中配置其网络功能。在开发应用时,通常使用 Microsoft Visual Studio 2013 添加网络功能。 也可使用文本编辑器在应用部件清单文件中手动设置网络功能。
有关网络隔离的详细信息,请参阅如何配置网络隔离功能。
相关主题
其他资源
参考
Windows.Networking.Connectivity
示例