[問題] socket server會自動關閉
這問題困擾我很久了,下面這個程式,跑一跑會自動關閉,我抓不到BUG。
在eval那行會跳掉,沒有$@錯誤訊息,理論上用eval遇到錯誤應該會繼續跑,不應該會
關閉程式才對啊?
用thread也會跳掉,fork不會,但是系統會跑出很多process,不開心。
我猜是socket->send那邊,send不出去出問題導致的,拜託高手幫個忙謝謝。
我的系統是raspbian,perl 5.14.2,client是用chrome去連的。
------------------server.pl--------------------
my $server = IO::Socket::INET->new( Proto => 'tcp',
LocalPort => 80,
Listen => SOMAXCONN,
Reuse => 1);
die "$0: can't setup server" unless $server;
while (my $client = $server->accept())
{
eval{status($client);};
print $@,$/ if $@;
#threads->create("status", $client);
#my $pid;
#unless ($pid = fork)
#{
# status($client);
# exit;
#}
}
sub status
{
my $client_socket = $_[0];
my $data;
$client_socket->recv($data, 1024);
$client_socket->send("HTTP/1.0 200 OK\r\n");
$client_socket->send("Content-type: text/plain\r\n\r\n");
$client_socket->send("test");
$client_socket->close();
$client_socket->shutdown(1);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.56.231
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1442907842.A.CA3.html
→
09/22 16:03, , 1F
09/22 16:03, 1F
→
09/22 16:56, , 2F
09/22 16:56, 2F
→
09/22 18:07, , 3F
09/22 18:07, 3F
→
09/22 23:41, , 4F
09/22 23:41, 4F
→
09/22 23:42, , 5F
09/22 23:42, 5F
Perl 近期熱門文章
PTT數位生活區 即時熱門文章