Re: [問題] 請問一下Server-Client的問題

看板Perl作者 (LPI Course Ongoing)時間16年前 (2009/04/13 21:14), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串2/3 (看更多)
感謝板大的解答 目前得到的stdout如下 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 IO::Socket::INET=GLOBIO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9 fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Soc ket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB (0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO: :Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET= GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348)IO::Socket::INET=GLOB(0x9fc7348 )IO::Socket::INET=GLOB(0x9fc7348) IO::Socket::INET=GLOB(0x9fc7348)出現一大堆 所以中間我就砍掉了 Client的程式執行會得到上面這樣的STDOUT~ Server的程式出現以下的錯誤訊息後也停止 Can't locate object method "create" via package "threads" at server.pl line 18. Server的程式如下 #!/usr/bin/perl #Server use threads::shared; use IO::Socket; my $server = IO::Socket::INET->new( LocalPort => 8088, Type => SOCK_STREAM, Listen => 32, Reuse =>1 ); my @array : shared=(); print @array; while(my $client = $server->accept() ) { threads->create( "client_handler", $client); <==17行 } sub client_handler { my $client = shift;    while(<$client>) { push( @array, $_ ); } print $client foreach( @array ); $client->shutdown(1); $client->close(); } 話說之前沒有改為 my @array : shared=();而是 my @array = (); 沒有這樣的訊息~ 是我client的程式有問題嘛!?(搔頭中) -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.195.107

04/13 21:37, , 1F
自問自答 改寫了client的程式後 那個討厭的GLOB沒出現了
04/13 21:37, 1F

04/13 21:38, , 2F
但是server程式還是停止~ :(
04/13 21:38, 2F

04/13 21:50, , 3F
在 server 的程式加上 use threads; 呢...
04/13 21:50, 3F

04/13 22:16, , 4F
thread 建太多死掉? 還是 SIG_PIPE 的訊號 找找看吧
04/13 22:16, 4F
文章代碼(AID): #19uphAmx (Perl)
文章代碼(AID): #19uphAmx (Perl)