SOAP Web Service Tutorials - Herong's Tutorial Examples - Version 5.02, by Dr. Herong Yang
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.
Table of Contents
Introduction to SOAP (Simple Object Access Protocol)
SOAP Message Transmission and Processing
SOAP Message Exchange Patterns
►Perl SOAP::Lite - SOAP Server-Client Communication Module
►SOAP::Transport::TCP::Server - SOAP Server with TCP Protocol
SoapTcpClient.pl - SOAP Client Example with TCP Protocol
SOAP::Transport::HTTP - SOAP Server with HTTP Protocol
Perl Socket Test Program for HTTP and SOAP
Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service
Perl SOAP::Lite 0.710 for SOAP 1.2 Web Services
Perl SOAP::Lite 0.710 for WSDL
PHP SOAP Extension Client Programs
PHP SOAP Extension Server Programs
Java Socket and HttpURLConnection for SOAP
SAAJ - SOAP with Attachments API for Java
SoapUI - SOAP Web Service Testing Tool
WS-Security - SOAP Message Security Extension
WS-Security X.509 Certificate Token