Como posso enviar repetidamente o conteúdo de um arquivo via socat / ncat para um soquete?

3

Estou executando alguns testes de desempenho e estou tentando enviar o mesmo arquivo repetidamente para um soquete.

Se eu fizer algo como:

$ socat -b1048576 -u OPEN:/dev/zero TCP4-LISTEN:9899,reuseaddr,fork 
$ socat -b1048576 -u TCP:127.0.0.1:9899 OPEN:/dev/null

Então, com esse buffer de 1MB, iftop me diz que estou empurrando 20Gbps.

No entanto, o que estou realmente tentando fazer é algo mais como:

$ socat -b1048576 -u OPEN:somefile.dat TCP4-LISTEN:9899,reuseaddr,fork 
$ myprog TCP:127.0.0.1:9899 > /dev/null

Mas ele envia apenas somefile.dat uma vez, eu realmente gosto de rewind() e envio novamente.

    
por Alun 20.04.2016 / 01:09

1 resposta

2

Supondo que você deseja abrir e enviar o mesmo arquivo a cada nova conexão, você pode usar -U , a direção inversa para -u e os endereços reversos, como no seguinte

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork OPEN:somefile.dat
socat TCP:127.0.0.1:9899 - >/dev/null

Se você deseja que o arquivo seja repetido ad infinitum , é possível usar algo assim:

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork SYSTEM:'while cat somefile.dat;do \: ;done'
    
por 21.04.2016 / 15:17