UdpPeer Control
Introduction
UdpPeer is simple control which provides the most functionality for the User Datagram Protocol (UDP). UdpPeer control simplifies the dealing with UDP in Windows applications using declarative manner.
Background
UDP is a protocol that works in session layer, it helps us to send the data. Although it's unreliable, but it provides two major functionalities - Multicast and Broadcast.
For network programmers who did many applications - I'm one of them - .NET provides a set of APIs in System.NET
namespace to help us in doing this stuff!! Moreover, we spend a lot of tedious code for sending data using UDP.
This is a sample code that uses UDP:
'Sending
Dim client As New UdpClient()
client.Connect("127.0.0.1", 1000)
Dim data() As Byte = Encoding.ASCII.GetBytes("Hello UdpPeer Control!!")
client.Send(data, data.Length)
'Receiving
Dim thread As New Thread(New ThreadStart(AddressOf Receive))
Thread.Start()
Sub Receive()
Dim server As New UdpClient(1000)
Dim iep As IPEndPoint = Nothing
While True
Dim data() As Byte = server.Receive(iep)
MessageBox.Show(Encoding.ASCII.GetString(data))
End While
End Sub
As we saw before, much of the code is just sending & receiving data. That code made me bored because whenever I wrote a network program, I did that?!!
So, I 'll encourage you to use UdpPeer control to save your time whenever you write any kind of network programs that need UDP programming. The code underneath is the same program which I wrote it before, but this time using UdpPeer control.
Using the Code
'Sending
UdpPeer1.Start()
UdpPeer1.Send("Hello UdpPeer Control!!")
'Receiving
Private Sub UdpPeer1_DataArrival(ByVal sender As Object, _
ByVal e As UdpEventArgs) Handles UdpPeer1.DataArrival
MessageBox.Show(e.Message)
End Sub
Wow!! What a nice code. Easier... cleaner all of this with few lines of code.
There's no magic beyond that, almost all things are declarative.
UdpPeer Members
IPAddress
is an IP for the UDP Peer.Port
is an a port for the UDP Peer.Type
is UDP Peer type (Client/Server).Start
is a method which starts listening for incoming messages in the receiver, and binds theIPAddress
&Port
in the sender.Send
is a method that accepts thestring
which you want to send.DataArrival
is an event that occurs whenever a data comes from the sender, and the actual data is stored ine.Message
, which is a property for theUdpEventArgs
.
Points of Interest
- Simplifies dealing with UDP in a way that has never been seen before
- Building the components in .NET is much easier as I think
History
- UdpPeer Control version 1.0 which contains the basic functionality to UDP including sending & receiving data (Unicast, Multicast and Broadcast)