답변:
다른 답변 -c
과 -q
주어진 답변 모두 올바른 맥락에서 정확하지만 여러 답변이있는 이유를 요약하고보다 일반적인 해결책을 제공하는 데 도움이 될 수 있습니다.
이러한 다른 옵션은 동일한 작업을 수행하지만 netcat의 다른 구현입니다.
-c
netcat의 GNU 구현-q
netcat의 OpenBSD 구현. -w
(기타?) netcat의 OpenBSD 구현. 일부 버전에서는 -q
및 -w
옵션을 종료하기 전에 대기 할 시간 (초)을 지정하기 위해 int가 필요합니다 . 이 int는 버전에 따라 > 0
또는 이어야합니다 >= 0
.
여러 시스템에서 무언가를 구현하고 동일한 netcat 구현을 사용하고 있는지 확실하지 않으면 timeout
몇 초 후에 netcat을 종료하기 위해 프로그램으로 netcat 호출을 래핑하는 것을 고려할 수 있습니다 .
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
이 접근 방식은 데이터 전송 여부에 관계없이 netcat 실행에 상한선을두기 때문에 약간 어색하지만 약간의 데이터를 보내고 여분의 시간이 있으면 몇 초가 소요됩니다. netcat 구현으로.
Ubuntu 18.04 서버에서 다음을 사용해야했습니다. (Man 페이지에서 찾았습니다)
echo '{"hostUp": true}' | sudo /usr/local/bin/netcat -N localhost 8001
분명히 다른 배포판 -N
과 유사 -q
하거나 -c
다른 배포판에 있습니다.