NetcatとUDPを使用してファイル(画像またはビデオ)を送信する方法はありますか?デフォルトはTCPですが、UDPを使用して送信したいと思います。 ncコマンドに単に-uを追加してみましたが、うまくいきませんでした。ここに私が使用している2つのコマンドがあります:
cat File.jpg | nc -u -l 777
nc -u 192.168.x.x 777 | pv -b > newfile.jpg
X.xのIPアドレスと、PC上の対応するファイルを使用しました。私はUbuntuも使用しています。
助けてくれてありがとう!
このようにしてみてください:
nc -u -l 7777 > newfile.jpg #on the destination machine
cat file.jpg | nc -u 192.168.x.x 7777 #on the source machine
通常は、マシンがファイルを「リッスン」する(最初に実行する)必要があり、リッスンしているときにudp経由でデータを送信します。 UDPには「ハンドシェイク」シーケンスがなく、誰もリスニングしていない場合でも、パケットはすぐに送信されます*。
* ICMPパケットを受け取って、ポートが閉じている(到達できない)こともありますが、それに依存することはできません(ファイアウォールなど)。
私はこの質問に次のように答える必要があると思います:はい、Netcat over UDPのファイルsendingの方法があります。ただし、宛先ホストでこのファイルを確実にreceiveこのファイルにすることはできません。
宛先ホストで使用可能なファイルが必要な場合は、別の解決策を探してください。
TCPオプションを使用するとnotでファイルが完全に受信されることが保証されます。
TCPは、16ビットのエラー保護のみを提供します。つまり、65,536通に1通の伝送エラーが発生します。
システム間でファイルを安全に送信するには、送信前にファイル全体のハッシュを計算し、受信後にそれを検証する必要があります。
その場合、UDP経由の送信は完全に有効です。ただし、伝送エラーの可能性を非常に低くする必要があります。ビジー状態のWiFIネットワーク経由、または大陸の反対側にあるコンピュータにこれを試みないでください。ただし、有線ネットワークを介した建物内では、エラーはほとんど発生しません。