語言

DatagramSocket.GetOutputStreamAsync 方法

定義

多載

名稱 Description
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 。

屬性

Windows 需求

規格需求 Description
應用程式功能
ID_CAP_NETWORKING [Windows Phone]

備註

DatagramSocket上的 GetOutputStreamAsync (EndpointPair) 方法可用來啟動作業,以將IOutputStream取得EndpointPair物件所指定的遠端網路目的地。 接著, IOutputStream 可用來將資料傳送至遠端目的地。

GetOutputStreamAsync (EndpointPair) 方法會在成功完成時傳回 IOutputStream 。 寫入該資料流程會將資料包傳送至指定的遠端主機和服務名稱。 IOutputStream一律會傳送至ConnectAsync方法中指定的遠端主機名和遠端服務名稱。

在 endpointPair參數中傳遞之EndpointPair的RemoteHostName屬性可以包含遠端目的地的主機名稱或 IP 位址。 在 endpointPair參數中傳遞之EndpointPair的RemoteServiceName屬性可以包含遠端目的地的服務名稱或 UDP 埠。 如果 RemoteHostName 屬性包含主機名稱,則 GetOutputStreamAsync (EndpointPair) 方法會導致遠端主機名的名稱解析。 如果 RemoteServiceName 屬性包含服務名稱,則 GetOutputStreamAsync 方法會導致遠端服務名稱解析為 UDP 埠。

必須在傳遞至 endpointPair 參數的 EndpointPair物件上提供RemoteHostName和RemoteServiceName屬性。 如果 RemoteHostName 為 Null ,或 RemoteServiceName 為 Null 或空字串,則會發生錯誤。

如果傳入 endpointPair參數的EndpointPair物件包含 Null LocalHostName屬性,則系統會提供將使用的本機 IP 位址。 如果傳入 endpointPair參數的EndpointPair物件包含LocalServiceName屬性的空字串,則系統會提供將使用的本機 UDP 埠。

使用 DatagramSocket 將 UDP 資料包傳送至遠端網路目的地的方式有兩種:

GetOutputStreamAsync方法可讓應用程式使用DatagramSocket物件將 UDP 資料包傳送至多個網路目的地。 每次呼叫 GetOutputStreamAsync (EndpointPair) 方法時,應用程式都可以為endpointPair參數中的RemoteHostName和RemoteServiceName成員設定不同的值。

若要從 DatagramSocket 物件上的任何遠端端點接收資料,應用程式必須先將 MessageReceived 事件指派給事件處理常式,然後呼叫 BindEndpointAsync 或 BindServiceNameAsync 方法,將 DatagramSocket 系結至本機服務名稱或 UDP 埠,再呼叫 GetOutputStreamAsync 方法。 MessageReceived事件處理常式必須在任何系結或連接作業之前設定,否則會發生錯誤。

作業的一般順序如下:

  1. 建立 DatagramSocket。
  2. 使用 Control 屬性來擷 取 DatagramSocketControl 物件,並設定任何進階控制項。 大部分的應用程式通常不需要此步驟。
  3. 將 MessageReceived 事件指派給事件處理常式。
  4. 呼叫 GetOutputStreamAsync (EndpointPair) 方法來取得 OutputStream 以將資料傳送至遠端端點。 GetOutputStreamAsync (EndpointPair) 方法也會使用endpointPair參數,將DatagramSocket系結至本機服務名稱或 UDP 埠,以及本機主機名稱或 IP 位址。
  5. 每當遠端端點的訊息送達時,就會叫用 MessageReceived 事件處理常式。 當應用程式使用BindEndpointAsync或BindServiceNameAsync方法來系結本機服務名稱或 UDP 埠時,GetOutputStreamAsync方法也與ConnectAsync方法不同。 透過 GetOutputStreamAsync 方法,應用程式會從任何傳送至本機服務名稱或 UDP 埠的遠端目的地接收封包。 使用 ConnectAsync 方法時,應用程式只會從以參數的形式傳遞至 ConnectAsync 方法的遠端目的地接收封包。

在呼叫 GetOutputStreamAsync (EndpointPair) 方法之前 ,可以使用 BindServiceNameAsync (String、NetworkAdapter) 方法來指定網路介面卡。 指定的配接器用於系結作業。 如果在呼叫 BindServiceNameAsync (String、NetworkAdapter) 和傳遞至 GetOutputStreamAsync 的 endpointPair 參數 () 指定 LocalHostName之後,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 。

屬性

Windows 需求

規格需求 Description
應用程式功能
ID_CAP_NETWORKING [Windows Phone]

備註

DatagramSocket上的 [GetOutputStreamAsync (HostName, String) 方法可用來啟動作業,以將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 方法可讓應用程式使用 DatagramSocket 物件將 UDP 資料包傳送至多個網路目的地。 每次呼叫 [GetOutputStreamAsync (HostName、String) 方法時,應用程式都可以為 remoteHostName 和 remoteServiceName 參數設定不同的值。

ConnectAsync方法可讓應用程式使用DatagramSocket物件將 UDP 資料包傳送至單一網路目的地。

若要從 DatagramSocket 物件上的任何遠端端點接收資料,應用程式必須先將 MessageReceived 事件指派給事件處理常式,然後呼叫 BindEndpointAsync 或 BindServiceNameAsync 方法,將 DatagramSocket 系結至本機服務名稱或 UDP 埠,再呼叫 GetOutputStreamAsync 方法。 MessageReceived事件處理常式必須在任何系結或連接作業之前設定,否則會發生錯誤。

作業的一般順序如下:

  1. 建立 DatagramSocket。
  2. 使用 Control 屬性來擷 取 DatagramSocketControl 物件,並設定任何進階控制項。 大部分的應用程式通常不需要此步驟。
  3. 將 MessageReceived 事件指派給事件處理常式。
  4. 將 DatagramSocket 系結至本機服務名稱或 UDP 埠。
  5. 每當遠端端點的訊息送達時,就會叫用 MessageReceived 事件處理常式。
  6. 呼叫 GetOutputStreamAsync 方法,以取得 OutputStream 以將資料傳送至遠端端點。 您可以從MessageReceived事件處理常式使用DatagramSocketMessageReceivedEventArgs中包含的資訊,以撰寫特定傳入訊息的遠端端點建立OutputStream。 當應用程式使用BindEndpointAsync或BindServiceNameAsync方法系結至本機服務名稱或 UDP 埠時,GetOutputStreamAsync 方法也與ConnectAsync方法不同。 透過 GetOutputStreamAsync 方法,應用程式會從任何傳送至本機服務名稱或 UDP 埠的遠端目的地接收封包。 使用 ConnectAsync 方法時,應用程式只會從以參數的形式傳遞至 ConnectAsync 方法的遠端目的地接收封包。

另請參閱

適用於