Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/Echo-server/Perl/echo-server-1.pl
Normal file
29
Task/Echo-server/Perl/echo-server-1.pl
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
use IO::Socket;
|
||||
my $use_fork = 1;
|
||||
|
||||
my $sock = new IO::Socket::INET (
|
||||
LocalHost => '127.0.0.1',
|
||||
LocalPort => '12321',
|
||||
Proto => 'tcp',
|
||||
Listen => 1, # maximum queued connections
|
||||
Reuse => 1,
|
||||
)
|
||||
or die "socket: $!"; # no newline, so perl appends stuff
|
||||
|
||||
$SIG{CHLD} = 'IGNORE' if $use_fork; # let perl deal with zombies
|
||||
|
||||
print "listening...\n";
|
||||
while (1) {
|
||||
# declare $con 'my' so it's closed by parent every loop
|
||||
my $con = $sock->accept()
|
||||
or die "accept: $!";
|
||||
fork and next if $use_fork; # following are for child only
|
||||
|
||||
print "incoming..\n";
|
||||
print $con $_ while(<$con>); # read each line and write back
|
||||
print "done\n";
|
||||
|
||||
last if $use_fork; # if not forking, loop
|
||||
}
|
||||
|
||||
# child will reach here and close its copy of $sock before exit
|
||||
6
Task/Echo-server/Perl/echo-server-2.pl
Normal file
6
Task/Echo-server/Perl/echo-server-2.pl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package Echo;
|
||||
use base 'Net::Server::Fork';
|
||||
sub process_request {
|
||||
print while <STDIN>;
|
||||
}
|
||||
Echo->run(port => 12321, log_level => 3);
|
||||
6
Task/Echo-server/Perl/echo-server-3.pl
Normal file
6
Task/Echo-server/Perl/echo-server-3.pl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package Echo;
|
||||
use base 'Net::Server::PreFork';
|
||||
sub process_request {
|
||||
print while <STDIN>;
|
||||
}
|
||||
Echo->run(port => 12321, log_level => 3);
|
||||
Loading…
Add table
Add a link
Reference in a new issue