Examples¶
Simple Server and Client applications
Server¶
This server will print all incoming messages and bundles
import argparse
import math
from osc import OSCServer
class SimpleServer(OSCServer):
def handle(self, address, message, time):
if message.is_bundle():
for msg in message:
print(time, address, msg.address, msg.args)
else:
print(time, address, message.address, message.args)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip",
default="127.0.0.1", help="The ip to listen on")
parser.add_argument("--port",
type=int, default=8000, help="The port to listen on")
args = parser.parse_args()
server = SimpleServer(args.ip, args.port)
print("Serving on {}".format(server.server_address))
server.serve_forever()
Client¶
Client will send OSCBundle and OSCMessages
import argparse
import random
import time
from osc import OSCMessage, OSCClient, OSCBundle
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", default="127.0.0.1",
help="The ip of the OSC server")
parser.add_argument("--port", type=int, default=8000,
help="The port the OSC server is listening on")
args = parser.parse_args()
client = OSCClient(args.ip, args.port)
for value in ["Lorem ipsum dolore sit amet", 123, True, bytes( "utf-8 text", "utf-8" )]:
msg = OSCMessage(address = "/debug")
msg.add( value )
client.send(msg)
msg1 = OSCMessage(address = "/bundle/a")
msg1.add( 123 )
msg2 = OSCMessage(address = "/bundle/b")
msg2.add( False )
bun = OSCBundle()
bun.add( msg1 )
bun.add( msg2 )
client.send( bun )
for x in range(10):
msg = OSCMessage(address = "/filter")
msg.add(random.random())
client.send(msg)
time.sleep(1)