1

それで、このプログラムを ipMidi という私の Mac で実行して、イーサネット接続を介して MIDI イベントを送信できるようにしました。UDP プロトコルで動作し、Ableton Live DAW から MIDI を送信しています。ipMidi を実行している同じマシンで、ipMidi から C++ プログラムにパッケージを読み込もうとしていますが、これを行う方法がわかりません。私はしばらくの間調査を行ってきましたが、ipMidi を取得してパッケージをローカルホストに送信する方法や、イーサネットを通過するパッケージを盗聴する方法がわかりません。私が見つけたツールの 1 つはルートでしたが、リッスンしている UDP プログラムにパッケージを送信するために ip テーブル エントリを複製することができませんでした。これを行うために私が見つけた他の方法は、wireshark を使用して ipMidi からスニッフィングした宛先パッケージの宛先 IP とポートでカーネルのマルチキャスト グループにプログラムを参加させることでしたが、バインドがアドレスが使用されています。だから私は本当にこれについていくつかの助けを使うことができました.

コードはありませんが、実装の問題というよりも理論的な問題に似ています。

私の英語は最高ではありません。

御時間ありがとうございます。

4

1 に答える 1

0

あなたはさまざまなテクニックに心を開いているようです。私はネットワークの専門家ではなく、iptables の専門家でもありませんが、iptable に相当する「ティー」を探してみます。あなたに役立つかもしれないこのリンクを見つけました。

https://unix.stackexchange.com/questions/15870/iptables-port-mirroring

編集:役に立つかもしれない別のもの http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/

私の頭に浮かぶもう1つのハックは、ipMidiがパケットを送信する場所を制御できる場合、特定のポートでそれらをlocalhostに送信し、netcatそのポートでリッスンするために開いてからtee、ファイルの出力をリダイレクトするために使用し、 C++ プログラムでそのファイルを読み取ります。teewould toの出力もnetcat、好きな場所 (別のホスト) にデータを送信できます。

次のようになります。

ipMidi -> localhost -> nc listening -> tee -> nc sending -> destination
                                           -> file -> your program.

しかし、これは、より良い解決策が見つからない場合に試してみることにすぎません (ありそうもないことです)。

于 2013-03-28T00:22:50.453 に答える