Von einem Beispiel der MSDN, ich versuche, die empfangenen Daten von Datagram in meinem Hintergrundaufgabe mit dem Socket-Broker abgerufen und die SocketActivityTrigger.Holen Sie Daten von SocketActivityTriggerDetails mit Datagram
Aber das Beispiel in der Verbindung dargestellt ist für StreamSocket:
public async void Run(IBackgroundTaskInstance taskInstance)
{
var details = taskInstance.TriggerDetails as SocketActivityTriggerDetails;
var socketInformation = details.SocketInformation;
switch (details.Reason)
{
case SocketActivityTriggerReason.SocketActivity:
var socket = socketInformation.StreamSocket;
DataReader reader = new DataReader(socket.InputStream);
reader.InputStreamOptions = InputStreamOptions.Partial;
await reader.LoadAsync(250);
var dataString = reader.ReadString(reader.UnconsumedBufferLength);
break;
}
}
Ich kann die empfangenen Daten von DatagramSocket Objekt finden, wir haben nur Zugriff auf den Ausgabestrom ..
Wie Kann ich tun ?
Danke!
@ grace-feng-msft Vielen Dank für Ihre Antwort aber .. Ich denke, Sie verstehen nicht das Verhalten hinter dem ** SocketActivityTrigger **. In der Tat übernehmen die Broker-Socket Besitz der DatagramSocket, die wir im Vordergrund erstellen, und wenn es ein Paket empfängt, startet es die Hintergrundaufgabe. So .. abonnieren MessageReceived Ereignis ** ist zu spät **, das Paket wurde bereits erhalten :( –
Niemand sonst kann mir helfen? –
@ApynAOM Haben Sie es geschafft, dies zu lösen? –