DatagramSocket.BindServiceNameAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
BindServiceNameAsync(String) |
启动 对 DatagramSocket 到本地服务名称的绑定操作。 |
BindServiceNameAsync(String, NetworkAdapter) |
启动 对 DatagramSocket 到本地服务名称和特定网络接口的绑定操作。 |
BindServiceNameAsync(String)
启动 对 DatagramSocket 到本地服务名称的绑定操作。
public:
virtual IAsyncAction ^ BindServiceNameAsync(Platform::String ^ localServiceName) = BindServiceNameAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction BindServiceNameAsync(winrt::hstring const& localServiceName);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction BindServiceNameAsync(string localServiceName);
function bindServiceNameAsync(localServiceName)
Public Function BindServiceNameAsync (localServiceName As String) As IAsyncAction
参数
- localServiceName
-
String
Platform::String
winrt::hstring
要绑定 DatagramSocket 对象的本地服务名称或 UDP 端口。
返回
DatagramSocket 对象的异步绑定操作。
- 属性
Windows 要求
应用功能 |
ID_CAP_NETWORKING [Windows Phone]
internetClientServer
privateNetworkClientServer
|
注解
BindServiceNameAsync 方法根据 localServiceName 参数中指定的本地服务名称或 UDP 端口绑定到本地计算机上所有网络接口的本地 IP 地址。 如果 localServiceName 参数为空字符串,系统将选择要绑定的本地 UDP 端口。
除非使用了 DatagramSocketControl.MulticastOnly 属性,否则如果另一个使用 UDP 的应用 (另一个 DatagramSocket(例如,) 已绑定到 localServiceName 参数中指定的本地 UDP 端口),BindServiceNameAsync 方法将失败。
绑定对于从 DatagramSocket 上的任何远程终结点接收数据至关重要,通常在创建套接字并设置 MessageReceived 事件后完成。 BindServiceNameAsync 或 BindEndpointAsync 方法用于将 DatagramSocket 绑定到本地服务名称或 UDP 端口。 ConnectAsync 方法还会导致绑定操作。 如果套接字尚未绑定,则写入由 某个 GetOutputStreamAsync 方法返回的流也会导致绑定操作。
在以下情况下,不需要 BindServiceNameAsync 和 BindEndpointAsync 方法:
- DatagramSocket 仅用于发送数据。
- DatagramSocket 用于向单个终结点发送数据以及从单个终结点接收数据。
另请参阅
- BindEndpointAsync(HostName, String)
- BindServiceNameAsync(String, NetworkAdapter)
- DatagramSocketInformation
适用于
BindServiceNameAsync(String, NetworkAdapter)
启动 对 DatagramSocket 到本地服务名称和特定网络接口的绑定操作。
public:
virtual IAsyncAction ^ BindServiceNameAsync(Platform::String ^ localServiceName, NetworkAdapter ^ adapter) = BindServiceNameAsync;
/// [Windows.Foundation.Metadata.Overload("BindServiceNameAndAdapterAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction BindServiceNameAsync(winrt::hstring const& localServiceName, NetworkAdapter const& adapter);
[Windows.Foundation.Metadata.Overload("BindServiceNameAndAdapterAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction BindServiceNameAsync(string localServiceName, NetworkAdapter adapter);
function bindServiceNameAsync(localServiceName, adapter)
Public Function BindServiceNameAsync (localServiceName As String, adapter As NetworkAdapter) As IAsyncAction
参数
- localServiceName
-
String
Platform::String
winrt::hstring
要绑定 DatagramSocket 对象的本地服务名称或 UDP 端口。
- adapter
- NetworkAdapter
要绑定 DatagramSocket 对象的网络适配器。
返回
DatagramSocket 对象的异步绑定操作。
- 属性
注解
[BindServiceNameAsync (String, NetworkAdapter) 方法绑定到 适配器 参数中指定的网络接口,以及本地计算机上的 localServiceName 参数中指定的本地服务名称或 UDP 端口。 如果 localServiceName 参数为空字符串,系统将选择要绑定的本地 UDP 端口。 如果 适配器 参数为 null,则会发生错误。
[BindServiceNameAsync (String, NetworkAdapter) 方法使用的名称解析机制仅限于域名系统 (DNS) 命名空间的指定接口。
除非已使用 DatagramSocketControl.MulticastOnly 属性,否则如果另一个使用 UDP 的应用 (另一个 DatagramSocket(例如,) 已绑定到同一网络接口上的 localServiceName 参数中指定的本地 UDP 端口), BindServiceNameAsync 方法将失败。
绑定对于从 DatagramSocket 上的任何远程终结点接收数据至关重要,通常在创建套接字并设置 MessageReceived 事件后完成。 BindServiceNameAsync 或 BindEndpointAsync 方法用于将 DatagramSocket 绑定到本地服务名称或 UDP 端口。 ConnectAsync 方法也会导致绑定操作,但不能仅限于特定的网络适配器。 写入由 GetOutputStreamAsync 方法之一返回的流也会导致绑定操作(如果套接字尚未绑定,但不能限制为特定的网络适配器)。
在以下情况下,不需要 BindServiceNameAsync 和 BindEndpointAsync 方法:
- DatagramSocket 仅用于发送数据。
- DatagramSocket 用于向单个终结点发送数据以及从单个终结点接收数据。
如果使用 [BindServiceNameAsync (String, NetworkAdapter) 方法,则绑定操作会将传入和传出多播和单播数据包限制为指定的适配器。
使用指定的网络适配器是尽最大努力的。 在其他配置中,在弱主机或转发模式下配置的适配器的系统可能使用指定的适配器以外的适配器。