有没有办法使用Netcat和UDP发送文件(图片或video)。 它默认为TCP,但我想用UDP发送。 我试着简单地将-u添加到nc命令中,但这不起作用。 以下是我正在使用的两个命令:
cat File.jpg | nc -u -l 777 nc -u 192.168.xx 777 | pv -b > newfile.jpg
我用我的IP地址为xx,并在我的电脑上相应的文件。 我也在使用Ubuntu。
感谢您的帮助!
试试像这样:
nc -u -l 7777 > newfile.jpg #on the destination machine cat file.jpg | nc -u 192.168.xx 7777 #on the source machine
通常你想让机器获取文件“listen”(首先运行),当它在监听时,通过udp发送数据。 UDP没有“握手”序列,即使没有人正在监听*,数据包也会立即发送。
*有时你得到一个ICMP数据包,该端口是closures(不可访问),但你不能依赖(防火墙等)
我想这个问题必须回答如下:是的,有一种方式通过UDP 发送 Netcat文件。 但是,目标主机上无法可靠地接收此文件。
如果您想要在目标主机上有可用的文件,请查找其他解决scheme。
使用TCP选项不保证您的文件将被完整接收。
TCP只提供16位的错误保护。 这意味着在65536个传输错误中将有1个通过。
为了安全地在系统之间传输文件,您应该在发送之前计算整个文件的散列,并在接收之后进行validation。
如果你这样做,通过UDP发送是完全有效的。 但是,您希望传输错误的概率非常低。 请勿尝试通过繁忙的WiFInetworking或非洲大陆另一端的计算机。 但是通过有线networking在build筑物内,你将会遇到很less的错误。