内部にLinuxが組み込まれた、USB経由でホストPCに接続されたゲートウェイ製品を開発しています。私のタスクは、デバイスファイルから UDP ストリームのログを読み取り、それをリモートホストに転送し、ファイルシステム (ramfs) のファイルに保存するために読み取られます。次のコマンドを使用してこれを行います。
socat -b1450 -u /dev/ueservice0 - | ティー -a /tmp/ModemFW.log | socat -b1450 -u - UDP4-DATAGRAM:${IPADDR}:4566
問題は、同じ USB インターフェイスで大量のデータ トラフィック (FTP) ストリームが実行されている場合、ModemFW.log ファイルにはすべてのログが含まれていますが、ストリームの半分は宛先に到達しません。奇妙なことに、ログを ramfs のファイルに保存しないと、すべて正常に動作し、ホストは同じ大量のトラフィックでもすべてのストリームを受信します。
socat -b1450 -u /dev/ueservice0 UDP4-DATAGRAM:${IPADDR}:4566
ティーが原因でパケットの半分が失われるという問題を知っている人はいますか? それを行う別の方法はありますか?どんな助けでも大歓迎です!