Abrir um soquete abre um soquete , que é o que você vê listado como descritor de arquivo 3 na sua saída ( socket:[5474494]
). Os outros três descritores de arquivos são os descritores padrão de entrada, saída e erro, que são abertos por padrão para qualquer processo. No seu caso, eles apontam para o terminal onde o programa está rodando, e é por isso que “surni” aparece lá quando você escreve no descritor de arquivo.
Para escrever no soquete, você precisa usar mecanismos apropriados, como netcat
na outra direção:
echo Hello | nc localhost 9999
ou, se você estiver usando o Bash:
echo Hello > /dev/tcp/localhost/9999
No entanto, parece que você já tem uma conexão estabelecida para a porta 9999 usando outro netcat
, para que isso não funcione no seu caso. Você precisa usar a conexão estabelecida ...
Se você espera que um nc
de longa duração forneça uma maneira de outros processos serem inseridos no soquete, você precisa definir isso por exemplo. usando um FIFO:
mkfifo socket-input
nc localhost 9999 < socket-input
echo Hello > socket-input