DatagramSocket.BindServiceNameAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| 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 需求
| 規格需求 | Description |
|---|---|
| 應用程式功能 |
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) 方法,則系結作業會將傳入和傳出多播和單播封包限制為指定的配接器。
使用指定的網路適配器是盡最大努力。 在其他設定中,在弱式主機或轉送模式中設定適配卡的系統可能會使用指定配接器以外的配接器。