Datagrammer
by Matthew Lyon matt@flowerpowered.com
DESCRIPTION:
Datagrammer helps take the pain out of UDP by mitigating some of the packet
encoding/decoding stuff, as well as providing a non-blocking listening thread.
FEATURES
- Encodes/Decodes OSC-style packets (where a main 'address' is given along
with typed arguments)
- Listens for messages in its own thread, performs a callback when a
message is received.
- Has a default "speaking" address / port for talkback. the IP of the sender
of a received packet is also made available to the callback.
SYNOPSIS
require 'datagrammer'
server = Datagrammer.new(5000)
server.register_rule /.*/, lambda {|msg| server.speak("received: #{msg.join(',')}") }
# set to speak at server's default speak destination
client = Datagrammer.new(5001, :speak_port => 5000)
client.register_rule 'received:', lambda {|msg| puts "rec'd #{msg}.join(' ')" }
client.speak(%w(hey joe))
sleep 0.1
# rec'd received: hey, joe
REQUIREMENTS
- Rspec, if you wish to run the spec suite