apache下,用perl写的CGI脚本不能使用socket的吗?
我试过了,写了一个serv脚本,运行监听。再写了一个client脚本,在控制台下运行是没有问题的。可是client放到ApacheCGI下就不能建立socket连接了。c...
我试过了,写了一个serv脚本,运行监听。再写了一个client脚本,在控制台下运行是没有问题的。可是client放到Apache CGI下就不能建立socket连接了。client脚本的相关权限已经保证了。请问是不是apache不允许执行socket的?
client脚本如下:
#!/usr/bin/perl
#客户端
use IO::Handle;
use Socket;
print "Content-type: text/html; Charset: utf-8";
print "\n\n";
$port=20080;
$host='localhost';
$packhost=inet_aton($host);
$address=sockaddr_in($port,$packhost);
socket(CLIENT,AF_INET,SOCK_STREAM,6);
connect(CLIENT,$address)|| print "connect fail";
CLIENT->autoflush(1);
my $line;
while (read(CLIENT, $line, 1024) > 0)
{
print STDOUT $line;
}
close CLIENT;
exit 1; 展开
client脚本如下:
#!/usr/bin/perl
#客户端
use IO::Handle;
use Socket;
print "Content-type: text/html; Charset: utf-8";
print "\n\n";
$port=20080;
$host='localhost';
$packhost=inet_aton($host);
$address=sockaddr_in($port,$packhost);
socket(CLIENT,AF_INET,SOCK_STREAM,6);
connect(CLIENT,$address)|| print "connect fail";
CLIENT->autoflush(1);
my $line;
while (read(CLIENT, $line, 1024) > 0)
{
print STDOUT $line;
}
close CLIENT;
exit 1; 展开
1个回答
展开全部
朋友... 从你的逻辑到语法...
貌似你还不知道自己想做甚麼, 或是想达成甚麼啊..
有的是时间, 你先思考一下, 再来问吧...
貌似你还不知道自己想做甚麼, 或是想达成甚麼啊..
有的是时间, 你先思考一下, 再来问吧...
更多追问追答
追问
不是我想做什么做,我在做的过程遇到这个问题。就是Perl写的CGI脚本貌似没有socket的权限! 请问您,这是不是Apache设置的问题。上面贴出的脚本只是个脚本例子,我怕可能是脚本写错,犯低级错误。而且上面那个脚本就是一个典型的socket客户端而已,到达connet语句就出错了,而在控制台执行是没有问题的。
追答
有些问题, 重点不在答案, 而是有些问题,
根本不能(合乎逻辑地)成立!
如果我问你 "为甚麼我看了中医之後, 吃的西药就不凑效呢 ?"
你会不会和我一样, 在想回答之际, 却先冒出了一堆问号 ?
得的是甚麼病呢? 为甚麼要吃药呢? 看了中医等於吃了中药吗? 吃的西药有吃对了吗?
如果一个问题连因果逻辑都未理顺, 那就更遑论解答了.
这就是我让你再重新思考的原因..
当你知道你到底想做甚麼的时候, 或许你跟本不会提这个问题
当然, 中间还有些东西可能你要先多了解一下... 到底甚麼是 CGI? 一个 CGI 程序的生命周期是怎样的 ?apache 是不是一个 socket? 甚至最基本的.. 一个 socket 是甚麼?
其实, 就算对这些都只是一知半解, 那还没关系.
但至少, 你得明确说出, 你想做甚麼, 你想达到甚麼.
而另外也有些东西你要给自己弄明一点点... 你写的 socket 是用来 read 还是用来 listen? 那个是客户端? 那个是伺服端 ? 中间要交流的讯息是甚麼..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询