你如何使用pyOSC发送消息?

时间:2015-09-23 13:13:29

标签: python

我对python很新,甚至不太熟悉pyOSC。有人可以发布一个简单的例子,说明如何从我的计算机向另一台计算机发送字符串消息吗?我查看了pyOSC link给了我一些指导,但我不确定为什么addressSet()需要" / startup"。这是在另一端接收消息的功能还是别的什么?

我非常感谢您提供的任何指导!

1 个答案:

答案 0 :(得分:11)

OSC具有消息地址的概念,该地址与您要连接的设备的网络地址不同。我们的想法是,您发送的消息可以路由到网络连接另一端的许多不同处理程序之一。每个处理程序都有自己的地址,通常用' /'前缀。

使用相同的客户端代码from the question you referenced

import OSC

c = OSC.OSCClient()
c.connect(('127.0.0.1', 57120))   # localhost, port 57120
oscmsg = OSC.OSCMessage()
oscmsg.setAddress("/startup")
oscmsg.append('HELLO')
c.send(oscmsg)

首先,运行此服务器代码:

import OSC

def handler(addr, tags, data, client_address):
    txt = "OSCMessage '%s' from %s: " % (addr, client_address)
    txt += str(data)
    print(txt)

if __name__ == "__main__":
    s = OSC.OSCServer(('127.0.0.1', 57120))  # listen on localhost, port 57120
    s.addMsgHandler('/startup', handler)     # call handler() for OSC messages received with the /startup address
    s.serve_forever()

然后从另一个终端运行客户端。在服务器端,你应该得到类似的东西:

OSCMessage '/startup' from ('127.0.0.1', 55018): ['HELLO']

了解如何使用pyOSC的最佳方法是阅读源代码。它全部在OSC.py中并且不会太长。文件底部有一个测试方法,提供了如何使用大多数(如果不是全部)协议功能的相当详细的示例。