Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 4.00

SOAP::Transport::TCP::Server - SOAP Server with TCP Protocol

This section provides a tutorial example on how to use the SOAP::Transport::TCP module to create a SOAP server with the TCP protocol.

Let's look at one of the SOAP server API module first. SOAP::Transport::TCP has sub module called SOAP::Transport::TCP::Server. It offers two functionalities: 1. Taking SOAP requests as a SOAP server; 2. Interacting with application modules to handle the requests as a SOAP server side API.

Main functions of SOAP::Transport::TCP::Server are:

new(LocalAddr=>'hostname', LocalPort=>'port', Listen=>'queueSize') - Constructs and returns SOAP server object that listens on the specified host name at the specified port with the specified queue size.

dispatch_to('Module::method') - Defines the module name and the method name that can be called by the incoming SOAP request for this server, and returns this server object.

handle() - Puts this server in waiting mode for incoming SOAP request. Whenever a SOAP request comes, it will be automatically passed to the module name and the method name defined by the dispatch_to() function based on the SOAP action name in the request.

Here is a sample program to show you how to create a SOAP server with TCP as the transportation protocol:

#- SoapTcpServer.pl
#- Copyright (c) 2002 by Dr. Herong Yang, http://www.herongyang.com/
   use SOAP::Transport::TCP;
   my $daemon = SOAP::Transport::TCP::Server
      ->new(LocalAddr => 'localhost', LocalPort => 8001, Listen => 5);
   $daemon->dispatch_to('Hello::hello');
   print "SOAP TCP server listening...\n";
   print "   Host: ", $daemon->sockhost, "\n";
   print "   Port: ", $daemon->sockport, "\n";
   $daemon->handle();

This program will create a SOAP server on localhost at 8001, and dispatch SOAP request to Hello::hello, if the SOAP action name matches it. Here is my Hello module code:

#- Hello.pm
#- Copyright (c) 2002 by Dr. Herong Yang, http://www.herongyang.com/
   package Hello;
   sub hello {
     shift;
     return "Hello " . shift;
   }
1;

If you run SoapTcpServer.pl, you will get this:

SOAP TCP server listening...
   Host: 127.0.0.1
   Port: 8001

The SOAP server is ready. Now you need a SOAP client program to talk the SOAP server. See the next section to know how to write a SOAP client program.

Last update: 2007.

Sections in This Chapter

What Is SOAP?

What Is SOAP::Lite?

SOAP::Transport::TCP::Server - SOAP Server with TCP Protocol

SoapTcpClient.pl - SOAP Client Example with TCP Protocol

SOAP::Lite Tracing Functions

SOAP::Transport::HTTP - SOAP Server with HTTP Protocol

Dr. Herong Yang, updated in 2009
SOAP::Transport::TCP::Server - SOAP Server with TCP Protocol