我对python很新,甚至不太熟悉pyOSC。有人可以发布一个简单的例子,说明如何从我的计算机向另一台计算机发送字符串消息吗?我查看了pyOSC link给了我一些指导,但我不确定为什么addressSet()需要" / startup"。这是在另一端接收消息的功能还是别的什么?
我非常感谢您提供的任何指导!
答案 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中并且不会太长。文件底部有一个测试方法,提供了如何使用大多数(如果不是全部)协议功能的相当详细的示例。