Sending Udp Packets

A simple class for sending UDP packets over a network.

This uses the System.Net.Sockets.UdpClient class.

from System.Net import IPAddress from System.Net.Sockets import UdpClient from System.Text import Encoding

class UdpSender(object): def __init__(self, port, ipAddress): self.client = UdpClient(0) # Only set this if you want to be able to listen # on the same machine self.client.MulticastLoopback = True

# No *need* to parse - you can pass in a string addr = IPAddress.Parse(ipAddress)

# Connecting means that you don't have to specify # The IP address when we call send. # For Udp, connecting isn't a requirement though self.client.Connect(addr, port)

def send(self, message): bytearr = Encoding.UTF8.GetBytes(message) self.client.Send(bytearr, bytearr.Length)

To use it, you need a valid port and address. If you want to multicast, you will need a Multicast Address.

This usage example of sending does use multicast group address: port = 5555 group = "230.29.35.5"

udpSender = UdpSender(port, group) udpSender.send("Some text")

In fact, because Udp is inherently a connectionless protocol, a minimal send example can be as small as: from System.Net.Sockets import UdpClient from System.Text import Encoding

datagram = Encoding.UTF8.GetBytes("Some text") client = UdpClient client.Send(datagram, datagram.Length, hostname, port)

Note that Udp datagrams have a maximum size. See the Udp protocol for more details.

Back to Contents.