共用方式為


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

屬性

Windows 需求

應用程式功能
ID_CAP_NETWORKING [Windows Phone]

備註

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

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

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

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

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

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

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

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

作業的一般順序如下:

  1. 建立 DatagramSocket
  2. 使用 Control 屬性來擷 取 DatagramSocketControl 物件,並設定任何進階控制項。 大部分的應用程式通常不需要此步驟。
  3. MessageReceived 事件指派給事件處理常式。
  4. 呼叫 GetOutputStreamAsync (EndpointPair) 方法來取得 OutputStream 以將資料傳送至遠端端點。 GetOutputStreamAsync (EndpointPair) 方法也會使用endpointPair參數,將DatagramSocket系結至本機服務名稱或 UDP 埠,以及本機主機名稱或 IP 位址。
  5. 每當遠端端點的訊息送達時,就會叫用 MessageReceived 事件處理常式。 當應用程式使用BindEndpointAsyncBindServiceNameAsync方法來系結本機服務名稱或 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 需求

應用程式功能
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 埠。

必須提供 remoteHostNameremoteServiceName 參數。 如果 remoteHostName 參數為 null,或 remoteServiceName 參數為 Null 或空字串,則會發生錯誤。

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

GetOutputStreamAsync 方法可讓應用程式使用 DatagramSocket 物件將 UDP 資料包傳送至多個網路目的地。 每次呼叫 [GetOutputStreamAsync (HostName、String) 方法時,應用程式都可以為 remoteHostNameremoteServiceName 參數設定不同的值。

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

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

作業的一般順序如下:

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

另請參閱

適用於