Comandos UDP para Linux e Mac?

1

Estou tentando testar o UDP entre dois terminais na mesma máquina.

Por exemplo:

Terminal 1

  • UDP ouvinte @ port: 3000
  • Remetente do UDP para porta: 3001

Terminal 2

  • UDP ouvinte @ port: 3001
  • Remetente do UDP para a porta: 3000

e testando os itens acima no ambiente - terminal MacOSX e Linux Terminal (emuladores Android).

Alguém sabe o comando para isso?

Eu pesquisei e encontrei nc para o UNIX, mas para o OSX

link

$ nc                                                                     [~]
usage: nc [-46AcCDdFhklMnOortUuvz] [-K tc] [-b boundif] [-i interval] [-p source_port]
      [-s source_ip_address] [-w timeout] [-X proxy_version]
      [-x proxy_address[:port]] [hostname] [port[s]]

Parece que nc não tem a opção -u para o UDP.

EDITAR: Eu tenho respostas que sugerem que o OSX nc tem -u opção.

Dito isto. Além dessa pergunta, eis o que fiz como a aprovação final;

Para o OSX:

Eu uso node.js em vez de comandos Shell para esses testes UDP. Isso é muito mais poderoso e confortável para mim.

Para Android (Linux):

Eu preparei um projeto de teste do Android App para testar. Clone o projeto e abra os projetos idênticos e execute 2 instâncias idênticas (emuladores).

Apenas para referências futuras.

    
por Ken OKABE 30.01.2014 / 20:20

1 resposta

2

O nc do OS X tem uma opção -u , que diz para usar o UDP. A única coisa complicada é que você tem que executar duas instâncias de nc -u em cada terminal, um enviando e outro escutando; e como um (geralmente o ouvinte) estará em segundo plano, usando o control-C para sair, ele só sairá da instância de primeiro plano; você tem que matar o fundo explicitamente. Isso deve ser feito:

nc -u -l 3000 & nc -u localhost 3001; kill $!

... então inverta os números das portas no outro terminal. Quando você mata o primeiro plano (enviando) nc , ele executará o kill $! e limpará o ouvinte também.

    
por 31.01.2014 / 02:01