DatagramSocket.GetOutputStreamAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя. | Описание |
|---|---|
| GetOutputStreamAsync(EndpointPair) |
Запускает операцию, чтобы получить IOutputStream в удаленное назначение сети, указанное объектом EndpointPair , который затем можно использовать для отправки сетевых данных. |
| GetOutputStreamAsync(HostName, String) |
Запускает операцию, чтобы получить IOutputStream в удаленное назначение, указанное именем удаленного узла и именем удаленной службы, которые затем можно использовать для отправки сетевых данных. |
GetOutputStreamAsync(EndpointPair)
Запускает операцию, чтобы получить IOutputStream в удаленное назначение сети, указанное объектом EndpointPair , который затем можно использовать для отправки сетевых данных.
public:
virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(EndpointPair ^ endpointPair) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair const& endpointPair);
[Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair endpointPair);
function getOutputStreamAsync(endpointPair)
Public Function GetOutputStreamAsync (endpointPair As EndpointPair) As IAsyncOperation(Of IOutputStream)
Параметры
- endpointPair
- EndpointPair
Пара конечных точек, представляющая имя локального узла или локальный IP-адрес, имя локальной службы или локальный порт UDP, имя удаленного узла или удаленный IP-адрес, а также имя удаленной службы или удаленный порт UDP.
Возвращаемое значение
IOutputStream, представляющий асинхронную операцию.
- Атрибуты
Комментарии
Метод GetOutputStreamAsync(EndpointPair) в datagramSocket используется для запуска операции, чтобы получить IOutputStream в удаленное назначение сети, указанное объектом EndpointPair. Затем IOutputStream можно использовать для отправки данных в удаленное назначение.
Метод GetOutputStreamAsync(EndpointPair) возвращает IOutputStream после успешного завершения. Запись в этот поток будет отправлять диаграммы данных в указанный удаленный узел и имя службы. IOutputStream всегда отправляет имя удаленного узла и имя удаленной службы, указанное в методе ConnectAsync.
Свойство RemoteHostNameконечной точки, переданное в параметре endpointPair , может содержать имя узла или IP-адрес удаленного назначения. Свойство RemoteServiceNameконечной точки , переданное в параметре endpointPair , может содержать имя службы или порт UDP удаленного назначения. Если свойство RemoteHostName содержит имя узла, метод GetOutputStreamAsync(EndpointPair) приводит к разрешению имен удаленного имени узла. Если свойство RemoteServiceName содержит имя службы, метод GetOutputStreamAsync приводит к разрешению имени удаленной службы на порт UDP.
Свойства RemoteHostName и RemoteServiceName должны быть предоставлены в объекте EndpointPair , переданном в параметре endpointPair . Если значение RemoteHostName равно NULL , или RemoteServiceName имеет значение NULL или пустая строка, возникнет ошибка.
Если объект EndpointPair, переданный в параметре endpointPair, содержит свойство Null LocalHostName, система будет предоставлять локальный IP-адрес, который будет использоваться. Если объект EndpointPair, переданный в параметре endpointPair, содержит пустую строку для свойства LocalServiceName, система предоставит локальный порт UDP, который будет использоваться.
Существует два способа использования DatagramSocket для отправки диаграмм данных UDP в удаленное назначение сети:
- Используйте один из методов GetOutputStreamAsync .
- После успешного вызова одного из методов ConnectAsync передайте свойство OutputStream объекту DataWriter и используйте методы объекта DataWriter для отправки данных.
Методы GetOutputStreamAsync позволяют приложению отправлять UDP-диаграммы данных с помощью объекта DatagramSocket в несколько сетевых назначений. При каждом вызове метода GetOutputStreamAsync(EndpointPair) приложение может задать различные значения для членов RemoteHostName и RemoteServiceName в параметре endpointPair .
Чтобы получить данные из любой удаленной конечной точки объекта DatagramSocket , приложение должно назначить событие MessageReceived обработчику событий, а затем вызвать метод BindEndpointAsync или BindServiceNameAsync , чтобы привязать DatagramSocket к имени локальной службы или порту UDP перед вызовом метода GetOutputStreamAsync. Обработчик событий MessageReceived должен быть установлен перед любой операцией привязки или подключения, в противном случае возникнет ошибка.
Типичный порядок операций выглядит следующим образом:
- Создайте DatagramSocket.
- Используйте свойство Control для получения объекта DatagramSocketControl и задания дополнительных элементов управления. Этот шаг обычно не требуется большинству приложений.
- Назначьте событие MessageReceived обработчику событий.
- Вызовите метод GetOutputStreamAsync(EndpointPair), чтобы получить OutputStream для отправки данных в удаленную конечную точку. Метод GetOutputStreamAsync(EndpointPair) также привязывает DatagramSocket к имени локальной службы или порту UDP и локальному имени узла или IP-адресу с помощью параметра endpointPair .
- Обработчик событий MessageReceived будет вызываться при поступлении сообщения из удаленной конечной точки. Методы GetOutputStreamAsync также отличаются от методов ConnectAsync , если приложение использует метод BindEndpointAsync или BindServiceNameAsync для привязки имени локальной службы или порта UDP. С помощью методов GetOutputStreamAsync приложение получит пакеты из любого удаленного назначения, отправленного на имя локальной службы или порт UDP. С помощью методов ConnectAsync приложение будет получать только пакеты из удаленного назначения, переданные в качестве параметров методам ConnectAsync .
Метод BindServiceNameAsync(String, NetworkAdapter) можно использовать для указания сетевого адаптера перед вызовом метода GetOutputStreamAsync(EndpointPair). Указанный адаптер используется для операции привязки. Если после вызова BindServiceNameAsync(String, NetworkAdapter) и параметра endpointPair, переданного в GetOutputStreamAsync(EndpointPair), то метод GetOutputStreamAsync(EndpointPair) завершится ошибкой.
См. также
Применяется к
GetOutputStreamAsync(HostName, String)
Запускает операцию, чтобы получить IOutputStream в удаленное назначение, указанное именем удаленного узла и именем удаленной службы, которые затем можно использовать для отправки сетевых данных.
public:
virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName);
[Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName remoteHostName, string remoteServiceName);
function getOutputStreamAsync(remoteHostName, remoteServiceName)
Public Function GetOutputStreamAsync (remoteHostName As HostName, remoteServiceName As String) As IAsyncOperation(Of IOutputStream)
Параметры
- remoteHostName
- HostName
Имя удаленного узла или удаленный IP-адрес.
- remoteServiceName
-
String
Platform::String
winrt::hstring
Имя удаленной службы или удаленный порт UDP.
Возвращаемое значение
IOutputStream, представляющий асинхронную операцию.
- Атрибуты
Комментарии
Метод [GetOutputStreamAsync(HostName, String) в datagramSocket используется для запуска операции, чтобы получить IOutputStream в удаленное назначение сети, указанное удаленным именем узла и именем удаленной службы. Затем IOutputStream можно использовать для отправки данных в удаленное назначение.
Метод [GetOutputStreamAsync(HostName, String) возвращает IOutputStream после успешного завершения. Запись в этот поток будет отправлять диаграммы данных в указанный удаленный узел и имя службы. IOutputStream всегда отправляет имя удаленного узла и имя удаленной службы, указанное в методе ConnectAsync.
Параметр remoteHostName может содержать имя узла или IP-адрес удаленного назначения. Параметр remoteServiceName может содержать имя службы или порт UDP удаленного назначения. Если параметр remoteHostName содержит имя узла, метод [GetOutputStreamAsync(HostName, String) приводит к разрешению имен удаленного имени узла. Если параметр remoteServiceName содержит имя службы, метод [GetOutputStreamAsync(HostName, String) приводит к разрешению имени удаленной службы на порт UDP.
Необходимо указать параметры remoteHostName и remoteServiceName . Если параметр remoteHostName имеет значение NULL или параметр remoteServiceName имеет значение NULL или пустая строка, возникнет ошибка.
Существует два способа использования DatagramSocket для отправки диаграмм данных UDP в удаленное назначение сети:
- Используйте один из методов GetOutputStreamAsync.
- После успешного вызова одного из методов ConnectAsync передайте свойство OutputStream объекту DataWriter и используйте методы объекта DataWriter для отправки данных.
Методы GetOutputStreamAsync позволяют приложению отправлять UDP-диаграммы данных с помощью объекта DatagramSocket в несколько сетевых назначений. Каждый раз при вызове метода [GetOutputStreamAsync(HostName, String) приложение может задать различные значения для параметров remoteHostName и remoteServiceName .
Методы ConnectAsync позволяют приложению отправлять UDP-диаграммы данных с помощью объекта DatagramSocket в одно сетевое назначение.
Чтобы получить данные из любой удаленной конечной точки объекта DatagramSocket , приложение должно назначить событие MessageReceived обработчику событий, а затем вызвать метод BindEndpointAsync или BindServiceNameAsync , чтобы привязать DatagramSocket к имени локальной службы или порту UDP перед вызовом метода GetOutputStreamAsync. Обработчик событий MessageReceived должен быть установлен перед любой операцией привязки или подключения, в противном случае возникнет ошибка.
Типичный порядок операций выглядит следующим образом:
- Создайте DatagramSocket.
- Используйте свойство Control для получения объекта DatagramSocketControl и задания дополнительных элементов управления. Этот шаг обычно не требуется большинству приложений.
- Назначьте событие MessageReceived обработчику событий.
- Привязка datagramSocket к имени локальной службы или порту UDP.
- Обработчик событий MessageReceived будет вызываться при поступлении сообщения из удаленной конечной точки.
- Вызовите метод GetOutputStreamAsync, чтобы получить OutputStream для отправки данных в удаленную конечную точку. Вы можете использовать сведения, содержащиеся в datagramSocketMessageReceivedEventArgs из обработчика событий MessageReceived , чтобы установить OutputStream с удаленной конечной точкой, создающей определенное входящее сообщение. Методы GetOutputStreamAsync также отличаются от метода ConnectAsync , если приложение использует метод BindEndpointAsync или BindServiceNameAsync для привязки к имени локальной службы или порту UDP. С помощью методов GetOutputStreamAsync приложение получит пакеты из любого удаленного назначения, отправленного на имя локальной службы или порт UDP. С помощью методов ConnectAsync приложение будет получать только пакеты из удаленного назначения, переданные в качестве параметров методам ConnectAsync .