Язык

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 должен быть установлен перед любой операцией привязки или подключения, в противном случае возникнет ошибка.

Типичный порядок операций выглядит следующим образом:

  1. Создайте DatagramSocket.
  2. Используйте свойство Control для получения объекта DatagramSocketControl и задания дополнительных элементов управления. Этот шаг обычно не требуется большинству приложений.
  3. Назначьте событие MessageReceived обработчику событий.
  4. Вызовите метод GetOutputStreamAsync(EndpointPair), чтобы получить OutputStream для отправки данных в удаленную конечную точку. Метод GetOutputStreamAsync(EndpointPair) также привязывает DatagramSocket к имени локальной службы или порту UDP и локальному имени узла или IP-адресу с помощью параметра endpointPair .
  5. Обработчик событий 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 должен быть установлен перед любой операцией привязки или подключения, в противном случае возникнет ошибка.

Типичный порядок операций выглядит следующим образом:

  1. Создайте DatagramSocket.
  2. Используйте свойство Control для получения объекта DatagramSocketControl и задания дополнительных элементов управления. Этот шаг обычно не требуется большинству приложений.
  3. Назначьте событие MessageReceived обработчику событий.
  4. Привязка datagramSocket к имени локальной службы или порту UDP.
  5. Обработчик событий MessageReceived будет вызываться при поступлении сообщения из удаленной конечной точки.
  6. Вызовите метод GetOutputStreamAsync, чтобы получить OutputStream для отправки данных в удаленную конечную точку. Вы можете использовать сведения, содержащиеся в datagramSocketMessageReceivedEventArgs из обработчика событий MessageReceived , чтобы установить OutputStream с удаленной конечной точкой, создающей определенное входящее сообщение. Методы GetOutputStreamAsync также отличаются от метода ConnectAsync , если приложение использует метод BindEndpointAsync или BindServiceNameAsync для привязки к имени локальной службы или порту UDP. С помощью методов GetOutputStreamAsync приложение получит пакеты из любого удаленного назначения, отправленного на имя локальной службы или порт UDP. С помощью методов ConnectAsync приложение будет получать только пакеты из удаленного назначения, переданные в качестве параметров методам ConnectAsync .

См. также

Применяется к