from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)
# Create server
server = SimpleXMLRPCServer(("localhost", 8000),
requestHandler=RequestHandler)
server.register_introspection_functions()
# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)
# Run the server's main loop
server.serve_forever()
####
#!/usr/bin/perl
use strict;
use warnings;
use Frontier::Client;
my $server_url = 'http://localhost:8000/RPC2';
my $server = Frontier::Client->new(url => $server_url);
# Call the remote server and get our result.
my $result = $server->call('pow', 2, 3);
print "Pow: $result\n";
__END__
perl client.pl
Pow: 8
####
import xmlrpclib
s = xmlrpclib.ServerProxy('http://localhost:8000')
print "Pow: {}".format(s.pow(2, 3))
####
#!/usr/bin/perl
use strict;
use warnings;
use Frontier::Daemon;
sub pow {
my ($x, $y) = @_;
return $x ** $y;
}
# Call me as http://localhost:8000/RPC2
my $methods = {
'pow' => \&pow,
};
Frontier::Daemon->new( LocalPort => 8000,
methods => $methods)
or die "Couldn't start HTTP server: $!";