Enquanto o TCP tem um conceito de conexões que têm um começo e um fim, o UDP não tem isso. O UDP é um protocolo sem conexão : um receptor UDP simplesmente espera por pacotes de entrada em uma porta UDP especificada e produz o conteúdo de qualquer pacote UDP que chega.
O recebimento de nc
não tem idéia de quantos pacotes podem estar chegando, nem se esses pacotes devem vir do mesmo host ou de vários hosts: ele simplesmente recebe qualquer coisa que chegue à porta UDP especificada e gera o conteúdo dos pacotes UDP na saída padrão sem analisá-lo de qualquer maneira até que o processo nc
seja interrompido.
Não há qualquer garantia embutida de que quaisquer pacotes enviados pelo cliente / remetente sejam recebidos na mesma ordem no final do receptor: os pacotes podem ser perdidos ou reordenados no caminho. O UDP não tenta consertar isso: é o trabalho da coisa que está usando o UDP para lidar com todos esses problemas (ou ignorá-los), conforme apropriado para seus propósitos.
Você pode decidir sobre uma sequência específica, fazer com que ela signifique "fim de dados" e organizar outro script na extremidade de escuta para analisar os dados recebidos e eliminar o processo de nc
de recebimento quando essa sequência for recebida. Dessa forma, você começará a criar seu próprio protocolo (talvez muito simples) sobre o UDP. E é exatamente para isso que o UDP foi projetado.
Resumindo, a resposta é "É possível ter nc -ul
terminado automaticamente?" é "Não, a menos que você faça algo que faça isso".