Netcat - сокет в time_wait при эхе и конвейере, но не при прямом вызове

Я тестирую приложение, используя netcat (nc) , и у меня очень низкая пропускная способность сетевых подключений. Когда я запустил netstat -tnpo , я увидел многочисленные сеансы TCP в TIME_WAIT . Я отправляю данные в свое приложение с помощью сценария bash , как показано ниже:

while true; do
    echo "<required string>" | nc server_ip port
done

Если я вместо этого сделаю это на терминале :

nc server_ip port
<required string>

, соединение немедленно прервется, и произойдет в TIME_WAIT не осталось сеанса TCP.

Почему разница? Что мне нужно сделать иначе, чтобы гарантировать, что после каждого эха в TIME_WAIT не останется TCP-порт?

0
задан 7 January 2016 в 06:00
1 ответ

Вы можете захотеть использовать его вот так.

    while true; do
        echo "<required string>" | nc server_ip port < /dev/null   
    done

Извините, у меня недостаточно репо, чтобы опубликовать его как комментарий.

-1
ответ дан 5 December 2019 в 18:46

Теги

Похожие вопросы