Назад | Перейти на главную страницу

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

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

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

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

nc server_ip port
<required string>

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

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

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

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

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