我试图创建一个连接到网站的套接字,并发送GET请求,但当我这样做时,我得到了一个错误。
这是我代码
#!/usr/bin/perl -w
use IO::Socket;
$socket = IO::Socket::INET->new(
PeerAddr => "www.googel.com",
PeerPort => "http(80)",
Proto => "tcp");
die "Error: $!";
print $socket "GET / HTTP/1.0";
close $socket;
误差为:
Error: Illegal seek at socket.pl line 7.
3条答案
按热度按时间w46czmvw1#
请使用以下命令:
omqzjyyz2#
这里有另一个版本,对行尾做了轻微的修复,接收并显示一行输入。
虽然如果你打算实际访问一个URL或抓取内容,我强烈建议你使用LWP::UserAgent或许多替代品之一。
mpgws1up3#
我不敢相信这个问题已经这么老了,仍然没有技术上正确的答案。
问题是你告诉你的程序去死,无论如何。在IO::Socket::INET-〉new()的结尾你有一个分号,终止了那个语句。下一个语句是die“Error:$?";它总是会死。$?只是碰巧被设置为“非法搜索”--你没有创建这个错误,也没有在你的程序中有任何其他东西,它只是$?碰巧被设置为此刻。
除了将“or”替换为“”之外,没有任何操作导致错误;“在IO::之后选择::INET-〉new()(或在die之前,取决于您的观点)。删除分号,添加“或”,将“googel.com“更改为“google.com“,并在请求末尾添加双回车/换行符(即:HTTP/1.0\r\n\r\n”的数据包;),程序将按您预期的方式运行。