UdpClient.EndReceive(IAsyncResult, IPEndPoint) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beendet einen ausstehenden asynchronen Empfang.
public:
cli::array <System::Byte> ^ EndReceive(IAsyncResult ^ asyncResult, System::Net::IPEndPoint ^ % remoteEP);
public byte[] EndReceive(IAsyncResult asyncResult, ref System.Net.IPEndPoint? remoteEP);
public byte[] EndReceive(IAsyncResult asyncResult, ref System.Net.IPEndPoint remoteEP);
member this.EndReceive : IAsyncResult * IPEndPoint -> byte[]
Public Function EndReceive (asyncResult As IAsyncResult, ByRef remoteEP As IPEndPoint) As Byte()
Parameter
- asyncResult
- IAsyncResult
Ein IAsyncResult Objekt, das von einem Aufruf von BeginReceive(AsyncCallback, Object).
- remoteEP
- IPEndPoint
Der angegebene Remoteendpunkt.
Gibt zurück
Bei erfolgreicher Ausführung ein Bytearray, das Datagrammdaten enthält.
Ausnahmen
asyncResult ist null.
asyncResult wurde nicht von einem Aufruf der BeginReceive(AsyncCallback, Object) Methode zurückgegeben.
EndReceive(IAsyncResult, IPEndPoint) wurde zuvor für den asynchronen Lesevorgang aufgerufen.
Fehler beim Zugriff auf die zugrunde liegende Socket.
Die zugrunde liegende Socket Datei wurde geschlossen.
Beispiele
Im folgenden Codebeispiel wird BeginSend ein asynchroner Empfang einer Serverantwort abgeschlossen.
public struct UdpState
{
public UdpClient u;
public IPEndPoint e;
}
public static bool messageReceived = false;
public static void ReceiveCallback(IAsyncResult ar)
{
UdpClient u = ((UdpState)(ar.AsyncState)).u;
IPEndPoint e = ((UdpState)(ar.AsyncState)).e;
byte[] receiveBytes = u.EndReceive(ar, ref e);
string receiveString = Encoding.ASCII.GetString(receiveBytes);
Console.WriteLine($"Received: {receiveString}");
messageReceived = true;
}
public static void ReceiveMessages()
{
// Receive a message and write it to the console.
IPEndPoint e = new IPEndPoint(IPAddress.Any, s_listenPort);
UdpClient u = new UdpClient(e);
UdpState s = new UdpState();
s.e = e;
s.u = u;
Console.WriteLine("listening for messages");
u.BeginReceive(new AsyncCallback(ReceiveCallback), s);
// Do some work while we wait for a message. For this example, we'll just sleep
while (!messageReceived)
{
Thread.Sleep(100);
}
}
Hinweise
Diese Methode blockiert, bis der Vorgang abgeschlossen ist.
Verwenden Sie die Receive Methode, um diesen Vorgang synchron auszuführen.