UdpClient.Receive(IPEndPoint) Methode

Definition

Gibt ein von einem Remotehost gesendetes UDP-Datagramm zurück.

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, der den Remotehost darstellt, von dem die Daten gesendet wurden.

Gibt zurück

Byte[]

Ein Array vom Typ Byte, das Datagrammdaten enthält.

Ausnahmen

Der zugrunde liegende Socket wurde geschlossen.

Beim Zugreifen auf den Socket ist ein Fehler aufgetreten.

Beispiele

Das folgende Beispiel veranschaulicht die Receive Methode. Die Receive -Methode blockiert die Ausführung, bis sie eine Nachricht empfängt. Mit dem IPEndPoint an Receiveübergebenen wird die Identität des antwortenden Hosts offengelegt.

//Creates a UdpClient for reading incoming data.
UdpClient^ receivingUdpClient = gcnew 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 = gcnew IPEndPoint( IPAddress::Any,0 );
try
{
   // Blocks until a message returns on this socket from a remote host.
   array<Byte>^receiveBytes = receivingUdpClient->Receive(  RemoteIpEndPoint );

   String^ returnData = Encoding::ASCII->GetString( receiveBytes );

   Console::WriteLine( "This is the message you received {0}", returnData );
   Console::WriteLine( "This message was sent from {0} on their port number {1}",
      RemoteIpEndPoint->Address, RemoteIpEndPoint->Port );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
 //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 queuierte Datagramm und gibt den Datenteil als Bytearray zurück. Diese Methode füllt den remoteEP Parameter mit der IPAddress Portnummer und der 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 SocketExceptionerhalten, verwenden Sie SocketException.ErrorCode , um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie eine ausführliche Beschreibung des Fehlers in der Dokumentation zur Windows Sockets-API, Version 2 .

Hinweis

Wenn Sie Multicastdatengramme empfangen möchten, rufen Sie die Connect -Methode vor dem Aufrufen der Receive -Methode nicht auf. Die UdpClient , die Sie zum Empfangen von Datagrammen verwenden, müssen mithilfe der Multicastportnummer erstellt werden.

Gilt für:

Weitere Informationen