导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

DatagramSocket.GetOutputStreamAsync(EndpointPair) | getOutputStreamAsync(EndpointPair) Method

启动操作以获取然后可以用于发送网络数据的 EndpointPair 对象所指定的远程网络目标的 IOutputStream

语法


datagramSocket.getOutputStreamAsync(endpointPair).done( /* 你的成功和错误处理程序 */ );

参数

endpointPair

类型: EndpointPair

表示本地主机名或本地 IP 地址、本地服务名或本地 UDP 端口、远程主机名或远程 IP 地址,以及远程服务名或远程 UDP 端口的终结点对。

返回值

类型: IAsyncOperation<IOutputStream>

表示异步操作的 IOutputStream

备注

GetOutputStreamAsync(EndpointPair) 方法(作用于 DatagramSocket)用于启动操作,以获取流向远程网络目标的 IOutputStream,该目标由 EndpointPair 对象。IOutputStream 然后可用于将数据发送到远程目标。

GetOutputStreamAsync(EndpointPair) 方法成功完成后会返回 IOutputStream。写入该流将发送数据报来提升指定的远程宿主和服务名。IOutputStream 始终发送到 ConnectAsync 方法指定的远程主机名和远程服务名称。

endpointPair 参数中传递的 EndpointPairRemoteHostName 属性可以包含远程目标的主机名称或 IP 地址。在 endpointPair 参数中传递的 EndpointPairRemoteServiceName 属性可以包含远程目标的服务名称或 UDP 端口。如果 RemoteHostName 属性包含一个主机名,则 GetOutputStreamAsync(EndpointPair) 方法会导致对远程主机名进行名称解析。 如果 RemoteServiceName 属性包含一个服务名称,则 GetOutputStreamAsync 方法会导致将远程服务名称解析到一个 UDP 端口。

endpointPair 参数中传递的 EndpointPair 对象上必须提供 RemoteHostNameRemoteServiceName 属性。如果 RemoteHostNamenull,或者 RemoteServiceNamenull 或空字符串,则会出现错误。

如果在 endpointPair 参数中传递的 EndpointPair 对象包含一个 null LocalHostName 属性,侧系统将提供要使用的本地 IP 地址。如果在 endpointPair 参数中传递的 EndpointPair 对象包含一个针对 LocalServiceName 属性的空字符串,则系统将提供要使用的本地 UDP 端口。

如果 BindServiceNameAsync(String, NetworkAdapter) 方法用于在调用 GetOutputStreamAsync(EndpointPair) 方法之前指定网络适配器,则指定的适配器用于绑定操作。如果在调用 BindServiceNameAsync(String, NetworkAdapter) 之后 endpointPair 参数(传递给 GetOutputStreamAsync(EndpointPair))指定 LocalHostName,则 GetOutputStreamAsync(EndpointPair) 方法将失败。

使用 DatagramSocket 有两种方式发送 UDP 数据报到一个远程网络目标:

GetOutputStreamAsync 方法允许应用程序将使用 DatagramSocket 对象的 UDP 数据报发送到多个网络目标。每次调用 GetOutputStreamAsync 方法,应用程序可以设置 remoteHostNameremoteServiceName 参数不同的值。

要接收 DatagramSocket 对象上的数据,应用程序必须将 MessageReceived 事件分配给事件处理程序,然后调用 BindEndpointAsyncBindServiceNameAsync 方法将 DatagramSocket 绑定到本地服务名或 UDP 端口上,然后再调用 GetOutputStreamAsync 方法。如果事件处理程序和绑定操作在调用 ConnectAsync 方法之后发生,则会出现一个错误。

操作典型的顺序如下:

  • 创建 DatagramSocket
  • MessageReceived 事件分配到一个事件处理程序。
  • 调用 GetOutputStreamAsync(EndpointPair) 方法,以便获取 OutputStream,从而发送数据到远程终结点。GetOutputStreamAsync(EndpointPair) 方法还将 DatagramSocket 绑定到本地服务名称或 UDP 端口和本地主机名或 IP 地址,方法是使用 endpointPair 参数。

当应用程序使用 BindEndpointAsyncBindServiceNameAsync 方法绑定本地服务名或 UDP 端口时,GetOutputStreamAsync 方法与 ConnectAsync 方法也不同。使用 GetOutputStreamAsync 方法,应用程序将接收来自任意远程目标的包发送到本地服务名或 UDP 端口。 ConnectAsync 方法,应用程序将只接收来自远程目标的包作为参数传递到 ConnectAsync 方法。

要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

Windows.Networking.Sockets
Windows::Networking::Sockets [C++]

元数据

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

ID_CAP_NETWORKING [Windows Phone]

另请参见

DatagramSocket
GetOutputStreamAsync(HostName, String)
EndpointPair
IOutputStream

 

 

显示:
© 2014 Microsoft