"Saída" ou "entrada" não depende de como os dados vão. De fato, qualquer conexão TCP deve enviar dados em ambos os lados - o handshake TCP, bem como os pacotes de "confirmação".
A maioria dos protocolos em nível de aplicativo que vão além do TCP também são bidirecionais; por exemplo. você precisa enviar uma solicitação antes de poder receber um arquivo.
O que define se a conexão é "saída" ou "entrada" é qual lado inicia o handshake TCP . Por exemplo, quando o navegador se conecta a um servidor da Web, você verá a conexão como saída, mesmo que o navegador receba muito mais dados do que envia. (O servidor da web verá a mesma conexão que a entrada.)
Da mesma forma, quando alguém se conecta ao servidor de arquivos, o computador vê a conexão como entrada, mas os dados fluem para os dois lados. Para impedir que os usuários baixem arquivos, você precisará configurar o seu programa de compartilhamento de arquivos.