DatagramSocket.GetOutputStreamAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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參數中傳遞之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 方法。
- 成功呼叫其中一個ConnectAsync方法之後,請將OutputStream屬性傳遞至DataWriter 物件,並使用 DataWriter物件上的方法來傳送資料。
GetOutputStreamAsync方法可讓應用程式使用DatagramSocket物件將 UDP 資料包傳送至多個網路目的地。 每次呼叫 GetOutputStreamAsync (EndpointPair) 方法時,應用程式都可以為endpointPair參數中的RemoteHostName和RemoteServiceName成員設定不同的值。
若要從 DatagramSocket 物件上的任何遠端端點接收資料,應用程式必須先將 MessageReceived 事件指派給事件處理常式,然後呼叫 BindEndpointAsync 或 BindServiceNameAsync 方法,將 DatagramSocket 系結至本機服務名稱或 UDP 埠,再呼叫 GetOutputStreamAsync 方法。 MessageReceived事件處理常式必須在任何系結或連接作業之前設定,否則會發生錯誤。
作業的一般順序如下:
- 建立 DatagramSocket。
- 使用 Control 屬性來擷 取 DatagramSocketControl 物件,並設定任何進階控制項。 大部分的應用程式通常不需要此步驟。
- 將 MessageReceived 事件指派給事件處理常式。
- 呼叫 GetOutputStreamAsync (EndpointPair) 方法來取得 OutputStream 以將資料傳送至遠端端點。 GetOutputStreamAsync (EndpointPair) 方法也會使用endpointPair參數,將DatagramSocket系結至本機服務名稱或 UDP 埠,以及本機主機名稱或 IP 位址。
- 每當遠端端點的訊息送達時,就會叫用 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 需求
應用程式功能 |
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 方法。
- 成功呼叫其中一個ConnectAsync方法之後,請將OutputStream屬性傳遞至DataWriter 物件,並使用 DataWriter物件上的方法來傳送資料。
GetOutputStreamAsync 方法可讓應用程式使用 DatagramSocket 物件將 UDP 資料包傳送至多個網路目的地。 每次呼叫 [GetOutputStreamAsync (HostName、String) 方法時,應用程式都可以為 remoteHostName 和 remoteServiceName 參數設定不同的值。
ConnectAsync方法可讓應用程式使用DatagramSocket物件將 UDP 資料包傳送至單一網路目的地。
若要從 DatagramSocket 物件上的任何遠端端點接收資料,應用程式必須先將 MessageReceived 事件指派給事件處理常式,然後呼叫 BindEndpointAsync 或 BindServiceNameAsync 方法,將 DatagramSocket 系結至本機服務名稱或 UDP 埠,再呼叫 GetOutputStreamAsync 方法。 MessageReceived事件處理常式必須在任何系結或連接作業之前設定,否則會發生錯誤。
作業的一般順序如下:
- 建立 DatagramSocket。
- 使用 Control 屬性來擷 取 DatagramSocketControl 物件,並設定任何進階控制項。 大部分的應用程式通常不需要此步驟。
- 將 MessageReceived 事件指派給事件處理常式。
- 將 DatagramSocket 系結至本機服務名稱或 UDP 埠。
- 每當遠端端點的訊息送達時,就會叫用 MessageReceived 事件處理常式。
- 呼叫 GetOutputStreamAsync 方法,以取得 OutputStream 以將資料傳送至遠端端點。 您可以從MessageReceived事件處理常式使用DatagramSocketMessageReceivedEventArgs中包含的資訊,以撰寫特定傳入訊息的遠端端點建立OutputStream。 當應用程式使用BindEndpointAsync或BindServiceNameAsync方法系結至本機服務名稱或 UDP 埠時,GetOutputStreamAsync 方法也與ConnectAsync方法不同。 透過 GetOutputStreamAsync 方法,應用程式會從任何傳送至本機服務名稱或 UDP 埠的遠端目的地接收封包。 使用 ConnectAsync 方法時,應用程式只會從以參數的形式傳遞至 ConnectAsync 方法的遠端目的地接收封包。