因為你使用 <> 來讀數據,所以以行為單位,建議你看看有關 select 的文檔

-------- Original Message --------
Subject: [PerlChina] Re: 求助 socket编程时碰到的问题
From: 周鹏远 <[email protected]>
To: [email protected]
Date: 17/11/2009 10:47
> 呵呵,的确如此,自己糊涂了
>
> 2009/11/17 flw <[email protected] <mailto:[email protected]>>
>
>     何谈“多”?
>     难道每一个换行符不都是你亲手写上去的吗?
>
>     2009/11/17 小飞侠 <[email protected]
>     <mailto:[email protected]>>
>
>
>         服务器端代码:
>         use strict;
>         use warnings;
>         use IO::Socket;
>
>         my $sock = IO::Socket::INET->new(
>         LocalHost => 'localhost',
>         LocalPort => 2345,
>         Proto => 'tcp',
>         Listen => 20,
>         Reuse => 1,
>         ) or die "no socket: $!\n";
>         print "listening........\n";
>         while(1){
>         next if ( !( my $session = $sock->accept ) );
>         print "begin talking \n";
>         while ( my $data = <$session> ) {
>         print "reived from client : $data";
>         print $session "you said $data\n";
>         }
>         close $session;
>
>         }
>         客户端代码:
>         use strict;
>         use warnings;
>         use IO::Socket;
>
>         my $sock = IO::Socket::INET->new(
>         PeerAddr => "localhost:2345",
>         Proto => 'tcp',
>         ) or die "no socket: $!\n";
>         my $line;
>         my $message;
>         while(1){
>         $line=<STDIN>;
>         print $sock $line;
>         while(<$sock>){
>         print "received from server: $_";
>         last;
>         }
>
>         }
>
>         ---测试结果----
>         ###################################################
>         客户端:
>         [r...@localhost forkserv-oo-0.01]# perl client.pl
>         <http://client.pl>
>         hello
>         received from server: you said hello
>         How are you
>         received from server:
>         are you listening?
>         received from server: you said How are you
>         oh I am puzzled
>         received from server:
>         oh no
>         received from server: you said are you listening?
>         ####################################################
>         服务器端:
>         listening........
>         begin talking
>         reived from client : hello
>         reived from client : How are you
>         reived from client : are you listening?
>         reived from client : oh I am puzzled
>         reived from client : oh no
>         ####################################################
>         现象分析:
>         似乎服务器返回的消息,每次都会多返回一个空回车符(或者换行符),
>         导致消息延迟
>
>         困惑中.......
>         望高手不吝赐教
>
>
>
>
>
>
>
> >

-- 
Best Regards,
        Anthony WU


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复