【问题标题】:How do you send a message using pyOSC?如何使用 pyOSC 发送消息?
【发布时间】:2015-12-20 19:55:51
【问题描述】:

我对 python 很陌生,对 pyOSC 更不熟悉。有人可以发布一个如何将字符串消息从我的计算机发送到另一台计算机的简单示例吗?我查看了这个pyOSC link,它给了我一些指导,但我不确定为什么 addressSet() 需要“/startup”。这是在另一端接收消息的函数还是其他函数?

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

【问题讨论】:

    标签: python


    【解决方案1】:

    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 中,而且不会太长。文件底部有一个测试方法,它提供了一个相当详细的示例,说明如何使用大部分(如果不是全部)协议功能。

    【讨论】:

    • 太棒了!非常感谢。
    • 这个解决方案有效,至少在客户端。请@hlupico 将其标记为绿色! :)
    猜你喜欢
    • 2016-08-03
    • 2021-02-24
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多