3

У меня проблемы с использованием Netcat, который поставляется с BusyBox 1.1.3, чтобы сделать HTTP-запрос, а затем получить ответ. Кажется, что команда NC завершает работу, как только она достигает конца файла запроса, который я отправляю. Опция -w, похоже, предназначена для этого случая, но, глядя на исходный код, не представляется возможным, что опция -w может повлиять на поведение получателя.

Исходный код этой версии NC на BusyBox находится здесь ...

http://git.busybox.net/busybox/tree/networking/nc.c?id=5cbe2519d8776bc15e0bc4dc7aeb6adc53e50b81

Что я делаю неправильно? Есть ли способ отправить файл на сервер через эту версию NC, а затем ждать получения ответа? Любые творческие идеи для других возможных способов сделать это в сценарии?

Обратите внимание, что это встроенная система, и у меня нет возможности обновить версию BusyBox или загрузить новый исполняемый файл - я могу использовать только файлы сценариев и уже доступный исполняемый файл BusyBox. Также обратите внимание, что в системе нет доступных WGET.

Спасибо!

-josh

2 ответа2

3

Попробуй это:

(echo "GET / HTTP/1.0"; sleep 1) | nc HOST 80
1

Вы уверены, что вас не смущает nc? Страница руководства BusyBox гласит:

nc
nc [OPTIONS] HOST PORT - connect nc [OPTIONS] -l -p PORT [HOST] [PORT] - listen

Options:

    -e PROG         Run PROG after connect (must be last)
    -l              Listen mode, for inbound connects
    -n              Don't do DNS resolution
    -s ADDR         Local address
    -p PORT         Local port
    -u              UDP mode
    -v              Verbose
    -w SEC          Timeout for connects and final net reads
    -i SEC          Delay interval for lines sent
    -o FILE         Hex dump traffic
    -z              Zero-I/O mode (scanning)

таким образом, появляется возможность прослушивать порт (традиционный) -l, а -w - время ожидания для соединений и окончательных сетевых чтений.

Если ваша проблема заключается в том, чтобы продолжать слушать даже после того, как соединение закрылось, вы можете использовать вечный цикл, в то время как true nc -l ....

Редактировать:

Прочитав сообщения, я понимаю, что не понял, о чем спрашивал ОП. Причина , почему я не понимаю, что вы не можете использовать пс экземпляр для отправки и приема. Для этого вам нужен отдельный порт и отдельный экземпляр nc . Там нет пинты в соответствии экземпляр передачи НЦ открытым, если вы не можете получить тот же порт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .