| Dart.PowerTCP.EmailValidation Namespace > DatagramEventArgs Class : Datagram Property (DatagramEventArgs) | 
Gets the Datagram object that represents the datagram for which the event was raised.
[Visual Basic]
Public ReadOnly Property Datagram As Datagram[C#]
public Datagram Datagram {get;}[C++]
public: __property Datagram* get_Datagram();When the Udp.EndSend or Udp.EndReceive events are raised signifying that a datagram has been sent or received, the DatagramEventArgs.Datagram property returns the Datagram object representing the datagram for which the event was raised.
The following example demonstrates creating a UDP echo server application which listens for datagrams and echoes them back to the sender.
[Visual Basic]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   ' Listen for datagrams on port 7.
   Udp1.Open(7)
   ' Begin an asynchronous Receive
   Dim buffer(Udp1.BufferSize) As Byte
   Udp1.BeginReceive(buffer)
End Sub
Private Sub Udp1_EndReceive(ByVal sender As Object, ByVal e As DatagramEventArgs) Handles Udp1.EndReceive
   ' Check for an Exception
   If e.Exception is Nothing Then
      ' Echo the data back using the Datagram object passed into the event.
      ' Datagram.Buffer = data received from client
      ' Datagram.RemoteEndPoint = address/port of client.
      Udp1.Send(e.Datagram.Buffer, e.Datagram.RemoteEndPoint)
   End If
   ' Start receiving next
   Dim buffer(Udp1.BufferSize) As Byte
   Udp1.BeginReceive(buffer)
End Sub
[C#]
private void StartServer()
{            
  // Listen for datagrams on port 7.
  udp1.Open(7);
  // Begin an asynchronous Receive
  byte[] buffer = new byte[udp1.BufferSize];
  udp1.BeginReceive(buffer);
}
private void udp1_EndReceive(object
sender, DatagramEventArgs e)
{
  // Check for an exception
  if(e.Exception == null)
  {
     // Echo the data back using the Datagram object passed into the event.
     // Datagram.Buffer = data received from client
     // Datagram.RemoteEndPoint = address/port of client.
     Datagram d = udp1.Send(e.Datagram.Buffer, e.Datagram.RemoteEndPoint);
  }        
  // Start receiving next
  byte[] buffer = new byte[udp1.BufferSize];
  udp1.BeginReceive(buffer);
}
                Platforms: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP, Windows Server 2003, Windows Vista
DatagramEventArgs Class | DatagramEventArgs Members
Send comments on this topic.
Documentation version 1.0.3.0.
© 2008 Dart Communications. All rights reserved.