Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PERL:如何避免套接字的WHILE?_Perl_Sockets - Fatal编程技术网

PERL:如何避免套接字的WHILE?

PERL:如何避免套接字的WHILE?,perl,sockets,Perl,Sockets,我想编写基于套接字的客户机-服务器高负载工具。 我有共同的代码: $buffsize = 1024; my $sock = new IO::Socket::INET( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', Timeout => 5, ); connect($sock, $paddr); my $a = send($sock, $data, $b

我想编写基于套接字的客户机-服务器高负载工具。 我有共同的代码:

  $buffsize = 1024;
  my $sock = new IO::Socket::INET(
    PeerAddr => $host,
    PeerPort => $port,
    Proto => 'tcp',
    Timeout => 5,
   );  

  connect($sock, $paddr);
  my $a = send($sock, $data, $buffsize);

    my $in;
      $content = "";
      while (1){        
        my $count = sysread($sock, $in, $buffsize);
        $content .= $in;
        }
      }
  close($sock);
但当我使用fork()时,这段代码会加载1000倍的CPU 100%。如何避免WHILE()优化源代码


谢谢

看看面向事件(例如非阻塞)的编程,如with或类似的