O TCP usa contadores de seqüência diferentes em ambas as extremidades da conexão. Então, se você simplesmente enviar um pacote completo de volta, ele terá o número de sequência incorreto e será rejeitado na outra extremidade, porque a outra extremidade acha que é um pacote duplicado que ficou atrasado, etc.
No entanto, você pode enviar o conteúdo de um pacote de volta, se é isso que você deseja. Uma maneira simples de fazer isso é com socat
. Teste o seguinte em duas janelas de terminal. Em um, faça
socat TCP-LISTEN:9990 SYSTEM:"cat"
Isso escutará as conexões de entrada e, quando uma conexão for estabelecida, canalizará os dados de entrada para cat
, que produzirá os mesmos dados, que então serão transmitidos através da conexão TCP.
No outro, faça
socat - TCP:localhost:9990
Isso se conectará ao primeiro socat
na porta 9990, enviará stdin
para ele e escreverá o responsável para stdout
. Digite algumas linhas (o stdin só envia linhas no CR) e observe-as voltando.
Você pode usar isso para testar sua configuração, se essa foi a ideia. Você também pode usar algo semelhante para enviar tudo de volta ao servidor:
socat TCP:server.com:1234 SYSTEM:"cat"
Mas isso exige que o servidor realmente envie algo ao se conectar.
Se isso não resolver o seu problema, edite sua pergunta e explique por que você deseja enviar "pacotes" e qual problema deseja resolver enviando de volta "pacotes". (Teste sua configuração? Teste o servidor? Outra coisa?).
Isso se parece muito com um problema XY .