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 the IPAddress & Port in the sender.
  • Send is a method that accepts the string which you want to send.
  • DataArrival is an event that occurs whenever a data comes from the sender, and the actual data is stored in e.Message, which is a property for the UdpEventArgs.

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)
推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"