1

組み込み Linux 開発ボードを使用して、次のことを行うウィジェットをまとめる必要があります。

  • 物理シリアル ポート経由でパケットを読み取り、それらのパケットを多数の IP アドレス (最大 20 個の IP アドレス、構成ファイルから読み取った IP 宛先を使用) に中継します。
  • また、おそらく で書かれたカスタム プログラムを使用して、これらのシリアル パケットを「スニッフィング」しcます。

プログラミングのバックグラウンドを持つ人として、(私にとって)最も明白な解決策はc、上記を達成するためにゼロからプログラムを作成することです。ただし、これはすぐにまとめる必要があるものであり、既存の Linux コマンドライン プログラムとスクリプトの作成 (私はあまり得意ではありません) について詳しく学ぶための言い訳が必要なので、これは、既存のコマンドライン プログラムとシェル スクリプトを使用して実現できます。次に、ゼロから作成する唯一の部分は、パケット スニファー ( と呼びますsniffer.c) です。

デバイスとアドレス間の中継に使用できることを理解してnetcatおり、両方の実験を開始しました。の複数のインスタンスを実行してシリアル データを TTY ポートからリモート IP アドレスに中継socatすることで、TCP/IP ソフトウェアを開発およびテストする必要がなくなるのではないかと考えました。socatの各インスタンスはsocat、特定のリモート IP アドレスを処理できます。

これは実現可能でしょうか?もしそうなら、どうすれば の複数のインスタンスと の 1 つのインスタンス/dev/ttyS0のソースとして (たとえば)からのストリームを効果的に「多重化」できますか? 1 つの方法として、読み取ったデータをキャッシュ ファイルにリレーし、インスタンスとすべてのインスタンスにそのファイルへの読み取り専用アクセスを許可することはできますか?socatsniffer.c/dev/ttyS0socatsniffer.c

4

0 に答える 0