語言

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 。

屬性

備註

DatagramSocket 上的 GetOutputStreamAsync(EndpointPair) 方法用於啟動操作,將 IOutputStream 傳送至由 EndpointPair 物件指定的遠端網路目的地。 接著可以使用 IOutputStream 將資料傳送到遠端目的地。

GetOutputStreamAsync(EndpointPair) 方法在成功完成時會回傳 IOutputStream 。 寫入該串流會將資料報傳送到指定的遠端主機和服務名稱。 IOutputStream 會始終傳送到 ConnectAsync 方法中指定的遠端主機名稱與遠端服務名稱。

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

RemoteHostName 與 RemoteServiceName 屬性必須在 endpointPair 參數中傳遞的 EndpointPair 物件中提供。 若 RemoteHostName 為 空 、 RemoteServiceName 為 空 或為空字串,則會發生錯誤。

如果 endpointPair 參數中傳遞的 EndpointPair 物件包含空的 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 事件處理程序。 GetOutputStreamAsync 方法也與 ConnectAsync 方法不同,當應用程式使用 BindEndpointAsync 或 BindServiceNameAsync 方法來綁定本地服務名稱或 UDP 埠時。 使用 GetOutputStreamAsync 方法,應用程式將接收來自任何遠端目的地的封包,這些封包發送到本地服務名稱或 UDP 埠。 使用 ConnectAsync 方法時,應用程式只會接收來自遠端目的地的封包,這些封包作為參數傳給 ConnectAsync 方法。

BindServiceNameAsync(String, NetworkAdapter) 方法可用來指定網路介面卡,再呼叫 GetOutputStreamAsync(EndpointPair) 方法。 指定的轉接器用於綁定操作。 若在呼叫 BindServiceNameAsync(String, NetworkAdapter) 且傳入 GetOutputStreamAsync(EndpointPair) 的 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 。

屬性

備註

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。 GetOutputStreamAsync 方法也與 ConnectAsync 方法不同,當應用程式使用 BindEndpointAsync 或 BindServiceNameAsync 方法綁定到本地服務名稱或 UDP 埠時。 使用 GetOutputStreamAsync 方法,應用程式將接收來自任何遠端目的地的封包,這些封包發送到本地服務名稱或 UDP 埠。 使用 ConnectAsync 方法時,應用程式只會接收來自遠端目的地的封包,這些封包作為參數傳給 ConnectAsync 方法。

另請參閱

適用於