DatagramSocket.BindServiceNameAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя. | Описание |
|---|---|
| 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
Имя локальной службы или порт UDP, на котором необходимо привязать объект DatagramSocket.
Возвращаемое значение
Асинхронная операция привязки объекта DatagramSocket.
- Атрибуты
Требования к Windows
| Требования | Описание |
|---|---|
| Возможности приложения |
internetClientServer
privateNetworkClientServer
|
Комментарии
Метод
Если вы не использовали свойство DatagramSocketControl.MulticastOnly, метод BindServiceNameAsync завершится ошибкой, если другое приложение с помощью UDP (другое DatagramSocket, например), уже привязано к локальному порту UDP, указанному в параметре localServiceName.
Привязка необходима для получения данных из любой удаленной конечной точки в 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
Имя локальной службы или порт UDP, на котором необходимо привязать объект DatagramSocket.
- adapter
- NetworkAdapter
Сетевой адаптер, на котором необходимо привязать объект DatagramSocket.
Возвращаемое значение
Асинхронная операция привязки объекта DatagramSocket.
- Атрибуты
Комментарии
Метод [BindServiceNameAsync(String, NetworkAdapter) привязывается к сетевому интерфейсу, указанному в параметре адаптера
Механизм разрешения имен, используемый методом [BindServiceNameAsync(String, NetworkAdapter), ограничен указанным интерфейсом для пространства имен системы доменных имен (DNS).
Если вы не использовали свойство DatagramSocketControl.MulticastOnly, метод BindServiceNameAsync завершится ошибкой, если другое приложение с помощью UDP (другое DatagramSocket, например), уже привязано к локальному порту UDP, указанному в параметре localServiceName на том же сетевом интерфейсе.
Привязка необходима для получения данных из любой удаленной конечной точки в DatagramSocket, и обычно выполняется после создания сокета, а событие MessageReceived. Метод BindServiceNameAsync или BindEndpointAsync используется для привязки DatagramSocket к имени локальной службы или порту UDP. Методы ConnectAsync также приводят к операции привязки, но не могут быть ограничены определенным сетевым адаптером. Запись в поток, возвращаемый одним из методов GetOutputStreamAsync, также приведет к операции привязки, если сокет еще не привязан, но не может быть ограничен определенным сетевым адаптером.
Методы BindServiceNameAsync и BindEndpointAsync не требуются в следующих случаях:
- datagramSocket
используется только для отправки данных. - datagramSocket
используется для отправки данных в одну конечную точку и получения данных.
Если используется метод [BindServiceNameAsync(String, NetworkAdapter), операция привязки ограничивает входящие и исходящие многоадресные и одноадресные пакеты указанным адаптером.
Использование указанного сетевого адаптера осуществляется на основе наилучших усилий. Среди прочего, системы с адаптерами, настроенными в режимах слабого узла или пересылки, могут использовать адаптер, отличный от указанного адаптера.