信息
您所需的主题如下所示。但此主题未包含在此库中。
此主题尚未评级 - 评价此主题

DatagramSocket.ConnectAsync(EndpointPair) | connectAsync(EndpointPair) Method

启动 DatagramSocket 被指定为 EndpointPair 对象的远程网络目标的连接操作。

语法


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

参数

endpointPair

类型: EndpointPair

一个 EndpointPair 对象,为远程网络目标指定本地主机名或 IP 地址、本地服务名称或 UDP 端口、远程主机名或远程 IP 地址以及远程服务名称或远程 UDP 端口。

返回值

类型: IAsyncAction

DatagramSocket 对象的异步连接操作。

备注

DatagramSocket 上的 ConnectAsync(EndPointPair) 方法用于定义使用 OutputStream 属性时要发送数据报的本地和远程终结点。此方法还限制将接受数据包的远程 IP 地址,这些数据包将被接受到 endpointPair 参数中的远程主机名。

应用程序以后可通过在 DatagramSocketOutputStream 属性上调用 WriteAsync 方法或通过将 OutputStream 传递到 DataWriter 对象并调用 DataWriter 对象的方法,将网络数据发送到远程网络目标。

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

默认识别的服务名称字符串是在本地计算机上的 %windir%\System32\drivers\etc\services 文件中列出的服务名称。任何其他服务名称值都会导致查询 DNS SRV 记录的域名系统 (DNS) 服务器的服务名称。

必须提供 RemoteHostNameRemoteServiceName 属性。如果 RemoteHostName 为 null,或者 RemoteServiceName 为 null 或空字符串,则会出现错误。

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

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

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

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

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

操作典型的顺序如下:

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

ConnectAsync 方法仅适用于单播 IP 地址。当尝试调用有 endpointPair 参数中远程 IP 地址的多路广播 IP 地址的 ConnectAsync 方法时,该异步操作将以错误完成。 当通过该错误到 SocketError.GetStatus 方法时,返回的值将为 SocketErrorStatus.HostNotFound

要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

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

元数据

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

internetClientServer
privateNetworkClientServer
ID_CAP_NETWORKING [Windows Phone]

另请参见

ConnectAsync(HostName, String)
DatagramSocket
EndpointPair
OutputStream
DataWriter
IOutputStream

 

 

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft. 版权所有。