7

为什么会这样:

执行 3<>/dev/tcp/www.google.com/80
echo -e "GET / HTTP/1.1\n\n">&3
猫 <&3

这失败了:

echo -e "GET / HTTP/1.1\n\n" > /dev/tcp/www.google.com/80
猫 </dev/tcp/www.google.com/80

有没有一种方法可以使用 wget、curl 或其他一些库在单行中做到这一点?

4

2 回答 2

10

第二个片段失败,因为它打开了两个单独的 TCP 套接字。echo连接并www.google.com写入 HTTP 请求;然后第二行打开另一个连接并尝试从该套接字读取。第二个套接字只是阻塞,因为 Google 正在等待发送 HTTP 请求。

于 2010-05-04T23:32:04.677 回答
1

不是我的专业领域,但我认为第二个示例将打开第二个连接,而第一个示例将打开同一连接的句柄。因此,任何涉及仅打开一个连接的解决方案都应该有效。

于 2010-05-04T23:31:27.507 回答