Eu tive o mesmo problema e levei horas para descobrir o que estava fazendo de errado. Eu ainda meio que não, mas sei pelo menos como fazer funcionar. Eu estava usando:
socat -u FILE:/tmp/test.txt TCP-LISTEN:5778,reuseaddr,fork
E funcionou como esperado quando mudei para:
socat TCP-LISTEN:5778,reuseaddr,fork FILE:/tmp/test.txt
Não sei ao certo o que está realmente mudando, mas descartar o sinal -u
e trocar a ordem dos endereços abrirá o soquete para várias chamadas do cliente. Eu tropecei nele enquanto tentava duplicar um exemplo de trabalho conhecido de um servidor .
Além disso, meu cliente era simplesmente socat -u TCP:localhost:5778 STDOUT
. Ele funciona sem o -u
.