The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::ClientServer - Implement a basic client/server architecture using a single platform

VERSION

version 0.0005

SYNOPSIS

The minimum configuration (specify a port):

my $platform = Net::ClientServer->new( port => 8020 );

$platform->server_socket;

...

if ( $platform->started ) { # Will attempt to connect to the listening socket
    $platform->client_socket;
}

Save server state to disk:

$platform = Net::ClientServer->new( port => 8020, name => 'net-client-server' );
# Server pid will be stored in $HOME/.net-client-server/pid
# On daemonization, stderr will be outputted to $HOME/.net-client-server/stderr

With a basic startup & serve/accept routine:

my $port = 8020;
$platform = Net::ClientServer->new(
    port => $port,
    start => sub {
        print STDERR "Server listening on $port\n";
    },
    serve => sub {
        my $client = shift; # The client socket
        $client->print( "Hello, World.\n" );
    },
);

$platform->start;

DESCRIPTION

Met::ClientServer is a tool for implementing a basic client/server architecture using a single platform. It is easily configured for daemonizing and maintaining state on disk (pidfile & stderr).

The minimum configuration is very simple, requiring only a port number:

my $platform = Net::ClientServer->new( port => 8020 );
$platform->server_socket;

...

$platform->client_socket;

USAGE

The API is still young and pretty fluid. See the SYNOPSIS for examples (for now)

Daemonization (via ->start) is on by default, disable it with: daemon => 0

SEE ALSO

Net::Server

Daemon::Daemonize

AUTHOR

Robert Krimen <robertkrimen@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Robert Krimen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.