Scripted write-then-read do soquete do domínio Unix usando socat

4

Eu tenho um servidor simples escutando em um soquete de domínio Unix (em uma caixa do CentOS, caso isso seja importante). Quando eu envio o comando "DATE" para o soquete, ele grava uma mensagem de boas vindas e, em seguida, "15 de abril de 2015". Eu posso fazer isso manualmente usando o comando:

socat - UNIX-CONNECT:/tmp/server.sock

mas agora quero fazer o script. Eu posso enviar meu comando DATE para o soquete, canalizando a saída de eco para o acima, mas depois socat retorna com apenas a mensagem de boas vindas. Eu não tenho certeza se o socat está retornando apenas as duas primeiras linhas, ou esperando por um período de silêncio antes de fechar o socket, ou o quê. por exemplo:

echo "DATE" | socat - UNIX-CONNECT:/tmp/server.sock

Como posso fazer com que a socat capture toda a resposta antes de desconectar? Eu tentei os parâmetros -t e -T para esperar 5 segundos, mas isso não tem efeito, a socat retorna imediatamente.

    
por TSG 15.04.2015 / 00:48

0 respostas