Transferência de arquivos UDP do Netcat?

6

Existe alguma maneira de enviar um arquivo (foto ou vídeo) usando o Netcat e UDP. O padrão é TCP, mas eu gostaria de enviar usando o UDP. Eu tentei simplesmente adicionar -u ao comando nc, mas isso não funcionou. Aqui estão os dois comandos que estou usando:

cat File.jpg | nc -u -l 777
nc -u 192.168.x.x 777 | pv -b > newfile.jpg

Eu usei meu endereço IP para x.x e o arquivo correspondente no meu PC. Eu também estou usando o Ubuntu.

Obrigado por qualquer ajuda!

    
por Vinnie 06.05.2012 / 02:53

3 respostas

8

Experimente assim:

nc -u -l 7777 > newfile.jpg #on the destination machine
cat file.jpg | nc -u 192.168.x.x 7777 #on the source machine

Normalmente, você quer que a máquina obtenha o arquivo "listen" (execute-o primeiro) e, quando estiver ouvindo, envie os dados pelo udp. O UDP não tem uma sequência de 'handshake' e os pacotes são enviados imediatamente, mesmo que ninguém esteja escutando *.

* algumas vezes você obtém um pacote ICMP, que a porta está fechada (inacessível), mas você não pode depender disso (firewalls, etc.)

    
por 06.05.2012 / 03:02
2

Acho que essa pergunta deve ser respondida da seguinte maneira: Sim, existe uma maneira de enviar um arquivo com o Netcat sobre o UDP. No entanto, não é possível receber este arquivo com segurança no host de destino.

Se você deseja ter um arquivo utilizável no host de destino, procure outra solução.

    
por 06.05.2012 / 12:48
2

Usando a opção TCP, não garante que seu arquivo seja recebido intacto.

O TCP fornece apenas 16 bits de proteção contra erros. Isso significa que 1 em 65.536 erros de transmissão passarão.

Para transmitir arquivos com segurança entre sistemas, você deve calcular um hash de todo arquivo antes de enviar e validá-lo após a recepção.

Se você estiver fazendo isso, o envio via UDP é totalmente válido. Você quer ter um probabilidade muito baixa de erros de transmissão, no entanto. Não tente mais uma rede WiFI ocupada, ou para um computador do outro lado do continente. Mas dentro de um edifício através de uma rede com fio, você encontrará muito poucos erros.

    
por 04.02.2016 / 22:22