【发布时间】:2017-03-04 19:10:29
【问题描述】:
我使用的是 macOS 并通过 Homebrew 安装了 netcat
$ brew info netcat
netcat: stable 0.7.1 (bottled)
Utility for managing network connections
http://netcat.sourceforge.net/
/usr/local/Cellar/netcat/0.7.1 (11 files, 104.2K) *
Poured from bottle on 2016-06-21 at 12:19:18
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/netcat.rb
我只是想让 netcat 响应传入的 curl 请求,但我认为我遇到的问题是 netcat 不知道何时响应。
这里是预计发回的内容,存储在response.txt:
HTTP/1.1 200 OK
这是在一个终端 shell 中运行的 netcat 命令:
sudo nc -l -p 80 < response.txt
这是在另一个终端 shell 中运行的 curl 命令:
curl 127.0.0.1:80
有人可以帮助我了解我需要做什么才能使其按预期工作。
我可以通过使用 netcat 而不是 curl 进行连接来实现此功能,但理想情况下,我希望非 netcat 客户端(例如 curl 或 Web 浏览器)与 localhost:80 建立连接并拥有netcat 响应的第一个实例。
谢谢。
【问题讨论】:
-
在
nc中,您不能将-p标志与-l标志一起使用。这没有意义,并且会引发错误。这在手册页中有清楚的解释。 -
改用它对我来说没有问题:
sudo nc -l 80 < response.txt。curl命令接收并输出存储在文件response.txt中的文本 -
@arkascha 感谢您的回复,我现在看到您对于使用 -p 没有任何意义是非常正确的,但是在一个 shell 中尝试
sudo nc -l 80 < response.txt并在另一个 shell 中尝试curl -v 127.0.0.1:80对我不起作用。我得到curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused -
同样的作品对我来说没有问题,我只是再次尝试确定。你身边肯定有其他问题。也许是本地防火墙?
标签: http curl webserver netcat