📄 server.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 + -