你如何使用pyOSC发送消息?

hlu*_*ico 4 python

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

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

小智 11

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

使用您引用的问题中的相同客户端代码:

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)
Run Code Online (Sandbox Code Playgroud)

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

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()
Run Code Online (Sandbox Code Playgroud)

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

OSCMessage '/startup' from ('127.0.0.1', 55018): ['HELLO']
Run Code Online (Sandbox Code Playgroud)

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