因此,我在Mac ipMidi上运行了该程序,该程序使我可以通过以太网连接发送midi事件。
它在UDP协议下工作,并从我的Ableton Live daw发送midi。
我正在尝试在运行ipMidi的同一台计算机上将ipMidi的软件包读入我的C ++程序,但是我不知道该怎么做。
我从事研究已有一段时间了,但我只是想不通如何让ipMidi将软件包发送到本地主机或嗅探通过我的以太网的软件包。
我发现的工具之一是路由,但我无法复制ip表条目以将软件包发送到我的监听UDP程序。
我发现执行此操作的另一种方法是,使我的程序加入我在Wireshark中从ipMidi嗅探到的目标包中的目标ip和端口中的内核上的多播组,但这是不可能的,因为绑定告诉我地址正在使用。
因此,我真的可以在此上使用一些帮助。
我知道没有代码,但更像是理论问题,而不是实现问题。
希望我能清楚地解释自己,我的英语不是最好的。
谢谢你的时间。
最佳答案
您似乎对各种技术持开放态度。我不是网络专家,也不是iptables的专家,但我会尝试寻找iptable的“ tee”等效项。我发现此链接可能对您有用。
https://unix.stackexchange.com/questions/15870/iptables-port-mirroring
编辑:另一个可能有用的
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
我想到的另一个技巧是,如果您可以控制ipMidi将数据包发送到的位置,则可以将它们发送到某个端口上的本地主机,打开netcat
来监听该端口,然后使用tee
重定向在文件上输出,然后使用C ++程序读取该文件。 tee
的输出将再次发送到netcat
,它可以将数据发送到您喜欢的位置(另一台主机)。
就像:
ipMidi -> localhost -> nc listening -> tee -> nc sending -> destination
-> file -> your program.
但这只是尝试,如果没有人提供更好的解决方案(不太可能)的想法。
关于c++ - 将本地UDP服务器信息获取到C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15671961/