big*_*osh 3 linux busybox netcat
我在使用 BusyBox 1.1.3 附带的 Netcat 发出 HTTP 请求然后接收响应时遇到问题。NC 命令似乎在到达我发送的请求文件末尾时立即退出。-w 选项似乎是为这种情况设计的,但是查看源代码,-w 选项似乎不可能对接收行为产生任何影响。
BusyBox 上此版本 NC 的源代码在这里...
http://git.busybox.net/busybox/tree/networking/nc.c?id=5cbe2519d8776bc15e0bc4dc7aeb6adc53e50b81
我究竟做错了什么?有没有办法通过这个版本的 NC 将文件发送到服务器,然后等待接收响应?关于在脚本中执行此操作的其他可能方法的任何创意?
请注意,这是一个嵌入式系统,我无法升级 BusyBox 版本或上传新的可执行文件 - 我只能使用脚本文件和已经可用的 BusyBox 可执行文件。另请注意,系统上没有可用的 WGET。
谢谢!
-乔希
小智 5
尝试这个:
(echo "GET / HTTP/1.0"; sleep 1) | nc HOST 80
Run Code Online (Sandbox Code Playgroud)
你确定你没有对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)
Run Code Online (Sandbox Code Playgroud)
因此,监听端口的选项似乎是(传统的) -l,而-w是连接和最终网络读取的超时。
如果您的问题是即使在连接关闭后仍要继续监听,您可以使用永恒循环,而 true nc -l ...。
编辑:
读完这些消息后,我意识到我不明白OP在问什么。我不明白的原因是你不能使用nc实例来发送和接收。您需要一个单独的端口,以及一个单独的nc实例。如果无法在同一端口上接收数据,则保持nc的传输实例处于打开状态是没有意义的。
| 归档时间: |
|
| 查看次数: |
8881 次 |
| 最近记录: |