此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Windows Phone 8 的套接字

2014/6/18

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone 提供了一个使开发人员能够创建可以与使用套接字的 Internet 服务和其他远程应用程序进行通信的编程接口。使用套接字通信的应用程序和服务示例包括:FTP、电子邮件、聊天系统和流式多媒体。通过在您的 Windows Phone 应用程序中使用套接字,可以创建能够通过传输控制协议 (TCP) 或用户数据报协议 (UDP) 套接字与服务通信的丰富客户端应用程序。

本主题包括以下部分。

Windows Phone 提供了创建和使用 TCP 和 UDP 套接字所需的编程接口。您可以根据应用程序的需要,选择使用何种类型的套接字。下图显示了一个视图,其中涵盖了在通信会话期间发生在客户端应用程序和服务之间的操作。有关所用术语的解释,请参见术语

Sequence Diagram of Socket Communication

下表说明了图中标记的每个操作。

操作

TCP

UDP

1

若要通过 TCP 通信,必须在客户端和服务器之间建立连接。连接请求中必须定义客户端要与其进行通信的终结点。这是 Windows Phone 中的异步操作。

通过 UDP 通信是无连接的,即无需在通信之前创建连接。

2

成功建立连接之后,客户端既可通过设置数据缓冲区并将其传递到服务器来向服务器发送数据。TCP 是基于流的协议,从而确保了数据接收顺序与数据发送顺序一致。TCP 协议兼顾传输顺序和可靠性。

UDP 套接字可以通过创建发送请求并将数据缓冲区传递到服务器来开始通信。无法保证服务器是否可以成功接收数据以及数据的接收顺序。若客户端确定需要此保证,则必须在客户端和服务器上自定义实现此保证。

3

客户端可以请求从服务器接收数据。这是一种异步调用,若调用成功,则所产生的回调将包含已发送的数据缓冲区。

UDP 套接字可以通过“侦听”与该服务相关联的端口上的传入数据并进行相应处理来从服务接收数据。

4

只要套接字保持连接,即可重复操作 2 和 3 中的发送和接收模式。

客户端可以继续发送和接收数据。

5

客户端完成通信之后,会调用关闭以通知服务器套接字即将终止。该调用用来确保在套接字断开连接之前能够从服务器接收剩余的数据。

6

最终,客户端断开套接字并关闭通信通道。

7

此时,没有活动的套接字通道,因此发送到客户端的数据将丢失。

此时,没有活动的套接字通道,因此发送到客户端的数据将丢失。

下面是 Windows Phone 上 TCP 和 UDP 套接字的特征比较。

TCP

UDP

传输类型

基于流

数据报

示例使用

电子邮件、远程管理、文件传输和 Web

流式多媒体、在线游戏和 Internet 电话服务

单播

任意源多播 (ASM)

源特定多播 (SSM)

广播

无连接或已连接

面向连接

无连接

可靠通信

请参阅

如何创建和使用 Windows Phone 8 的 TCP 套接字客户端应用

如何创建和使用 Windows Phone 8 的 UDP 套接字客户端应用

如何通过多播组为 Windows Phone 8 发送和接收数据

套接字是一种在应用程序或进程之间传递数据包或消息的机制。在编程术语中,套接字是一个针对 TCP/IP 协议堆栈的编程接口。套接字在网络上通过套接字地址进行标识,套接字地址是 Internet 协议 (IP) 地址和端口号的组合。下表列出了您在 Windows Phone 应用程序中使用套接字时应当熟悉的一些常用术语。

术语

描述

广播

将数据发送到网络上的所有设备。

客户端

在套接字通信中,由服务器提供的服务的使用者。例如,聊天客户端是聊天服务的使用者,可以使用该服务建立与其他客户端的聊天会话。运行于 Windows Phone 设备上的应用程序是可通过套接字使用服务的客户端应用程序。

无连接

无需在通信开始之前在发送套接字和接收套接字之间建立连接的通信。在此模式中,无法保证接收方已准备好接收数据,并且没有数据已接收或数据已正确接收的确认。UDP 套接字提供了无连接的通信接口。

面向连接

在发送和接收数据之前,套接字必须首先建立与目标套接字的连接的通信。建立连接之后,即可以发送数据流,并将以相同的顺序接收数据流。TCP 套接字提供了面向连接的通信接口。

端点

任一通信方的通信端口。通常通过 IP 地址、支持的传输协议类型和端口号定义。

IP 地址

网络设备的行业标准命名约定。它是一组二进制数,通常以可读的格式存储,如 172.36.254.14。

IPv4

Internet 设备的较旧 32 位寻址系统。172.36.254.14 是可读格式的 IPv4 地址的一个示例。

IPv6

网络设备的最新 128 位寻址系统。它是为适应 Internet 设备数量日益增加的趋势而开发的。fe80::e42b:2e74:6ddb:e30 是可读格式的 IPv6 地址的一个示例。

重要说明重要说明:
Windows Phone OS 7.1 的套接字不支持 IPv6。

多播

向已通过加入多播组注册感兴趣数据的网络设备发送数据。

端口号

标识网络上端口或终结点的编号,可以与 IP 地址和通过支持的传输协议一起使用。已保留已知的端口列表,以供特定服务使用,如 Telnet (23) 和 HTTP (80)。其他服务和应用程序可以使用其他编号。

服务器

提供由客户端使用的一个或多个服务的网络设备。例如,聊天服务器提供了可由聊天客户端用来与其他客户端建立聊天会话的聊天服务。尽管 Windows Phone 设备上的应用程序可以通过套接字发送和接收数据,但它们并不被视为服务器。

套接字

在网络上与其他应用程序或服务进行通信的编程接口。

传输控制协议 (TCP)

保证在网络上可靠、有序传递消息的 Internet 标准。

TCP/IP

Internet 和其他网络上使用的一套通信协议。虽然该套协议是以添加到该标准的前两个协议(即 TCP 和 IP)来命名的,但它由四层协议组成,TCP 和 UDP 协议是传输层的一部分。

用户数据报协议 (UDP)

用来以无连接方式传输数据报的传输层协议,即在发送和接收消息之前无需建立任何连接。该特征可以使 UDP 成为快速传输协议,但就可靠性而言,较之 TCP 有一些缺点,因为无法保证按目标接收数据报,并且在默认情况下无法发送确认。

单播

将数据发送到网络中具有唯一可识别地址的特定目标。

已对 Windows Phone 8 采用了 Windows 运行时 API,即 Windows.Networking.Sockets。已将它实现为 Windows Phone 运行时 API,因此它在任意您所选的受支持的编程语言中都易于使用。尽管我们已经增强了 .NET API,即 System.Net.Sockets 来支持诸如 IPv6 和侦听套接字等更多功能,但您应考虑对套接字编程使用新的 API,因为它的可移植性比 .NET API 更强。我们已经从头开始生成了 Windows.Networking.Sockets,使其成为了用于执行最佳实践的清洁、安全和易于使用的 API。有关受支持的 Windows 运行时 API 的更多信息,请参见 Windows Phone 运行时 API

Windows Phone 8 现在支持 WinSock API 以启用低级别套接字编程。有关所支持 API 的信息,请参见 Windows Phone 8 支持的 Win32 API

显示:
© 2015 Microsoft