我试图通过chuck在OSC (Open Sound Control) protocol和python之间建立通信。在python方面,我们使用python-osc library并且chuck本机支持OSC协议。我们从python端发送的消息似乎没有到达chuck端。所有其他组合,即python到python、chuck到chuck和chuck到python,都工作得很好。
我在Windows7上运行Python3.4.4。
这里会出什么问题?
下面是我用于测试的客户机/服务器实现的四个文件。
chuck_客户端.py:
OscSend xmit;
xmit.setHost("localhost", 5005);
<<<"Sending">>>;
xmit.startMsg("/debug");
查克服务器.py:
OscRecv orec;
5005 => orec.port;
orec.listen();
orec.event("/debug") @=> OscEvent e;
<<<"Waiting">>>;
e => now;
<<<"Received">>>;
python_客户端.py:
from pythonosc import osc_message_builder
from pythonosc import udp_client
client = udp_client.UDPClient('localhost', 5005)
msg = osc_message_builder.OscMessageBuilder(address="/debug")
msg = msg.build()
print('Sending')
client.send(msg)
python_服务器.py:
from pythonosc import dispatcher
from pythonosc import osc_server
dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", lambda _: print('Received'))
print('Waiting')
server = osc_server.ThreadingOSCUDPServer(
('localhost', 5005), dispatcher)
print("Serving on {}".format(server.server_address))
server.serve_forever()
最佳答案
这似乎是PythonOSC1.5中的一个错误。在版本1.6中,提供的示例只起作用。参考:https://github.com/attwad/python-osc/issues/31