UdpClient.Receive(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.
Gibt ein UDP-Datagramm zurück, das von einem Remotehost gesendet wurde.
public:
cli::array <System::Byte> ^ Receive(System::Net::IPEndPoint ^ % remoteEP);
public byte[] Receive(ref System.Net.IPEndPoint? remoteEP);
public byte[] Receive(ref System.Net.IPEndPoint remoteEP);
member this.Receive : IPEndPoint -> byte[]
Public Function Receive (ByRef remoteEP As IPEndPoint) As Byte()
Parameter
- remoteEP
- IPEndPoint
Ein IPEndPoint Wert, der den Remotehost darstellt, von dem die Daten gesendet wurden.
Gibt zurück
Ein Array vom Typ Byte , das Datagrammdaten enthält.
Ausnahmen
Die zugrunde liegende Socket Datei wurde geschlossen.
Fehler beim Zugriff auf den Socket.
Beispiele
Im folgenden Beispiel wird die Receive Methode veranschaulicht. Die Receive Methode blockiert die Ausführung, bis sie eine Nachricht empfängt. Anhand der IPEndPoint übergebenen Daten Receivewird die Identität des Antworthosts angezeigt.
//Creates a UdpClient for reading incoming data.
UdpClient receivingUdpClient = new UdpClient(11000);
//Creates an IPEndPoint to record the IP Address and port number of the sender.
// The IPEndPoint will allow you to read datagrams sent from any source.
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
try{
// Blocks until a message returns on this socket from a remote host.
Byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
string returnData = Encoding.ASCII.GetString(receiveBytes);
Console.WriteLine("This is the message you received " +
returnData.ToString());
Console.WriteLine("This message was sent from " +
RemoteIpEndPoint.Address.ToString() +
" on their port number " +
RemoteIpEndPoint.Port.ToString());
}
catch ( Exception e ){
Console.WriteLine(e.ToString());
}
'Creates a UdpClient for reading incoming data.
Dim receivingUdpClient As New UdpClient(11000)
'Creates an IPEndPoint to record the IP address and port number of the sender.
' The IPEndPoint will allow you to read datagrams sent from any source.
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Try
' Blocks until a message returns on this socket from a remote host.
Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint)
Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
Console.WriteLine(("This is the message you received " + returnData.ToString()))
Console.WriteLine(("This message was sent from " + RemoteIpEndPoint.Address.ToString() + " on their port number " + RemoteIpEndPoint.Port.ToString()))
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
End Sub
Hinweise
Die Receive Methode wird blockiert, bis ein Datagramm von einem Remotehost eingeht. Wenn Daten verfügbar sind, liest die Receive Methode das erste enqueuierte Datagramm und gibt den Datenteil als Bytearray zurück. Diese Methode füllt den remoteEP Parameter mit der IPAddress Portnummer des Absenders auf.
Wenn Sie einen Standard-Remotehost in der Connect Methode angeben, akzeptiert die Receive Methode nur Datagramme von diesem Host. Alle anderen Datagramme werden verworfen.
Wenn Sie einen SocketException, verwenden, SocketException.ErrorCode um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code erhalten haben, können Sie sich in der Windows Sockets Version 2-API-Fehlercodedokumentation um eine detaillierte Beschreibung des Fehlers informieren.
Note
Wenn Sie Multicast-Datagramme empfangen möchten, rufen Sie die Connect Methode vor dem Aufrufen der Receive Methode nicht auf. Die UdpClient Zum Empfangen von Datagrammen verwendeten Datengramme müssen mithilfe der Multicastportnummer erstellt werden.