Release ======= IPC::LDT 2.02. Overview ======== To install blocking, record oriented IPC communication, Perls builtin function print() and the operator <> are sufficient. But if there's a need to implement non blocking, stream oriented communication, additional efforts are required. IPC::LDT is a class to build objects which transparently perform a "length driven transfer". "LDT" is a simple low level protocol for non blocking communication, acting between the transfer protocol (TCP/IP) and the application protocol. An LDT message contains of two parts: a fix length prefix describing the length of the second part, and the kernel message (of the described length). Example: if the prefix length is 4, a message "msg" would be transfered as "0003msg". IPC::LDT provides a simple interface to use this protocol. A user sends and receives messages by simple method calls, while the LDT objects perform the complete translation into and from LDT messages (with prefix) and all the necessary low level IO handling to transfer stream messages on non blocking handles. IPC::LDT objects can be configured to transfer simple string messages as well as complex data structures. Additionally, they allow to delay the transfer of certain messages in a user defined way. Synopsis ======== Load the module as usual: use IPC::LDT; Make an LDT object for every handle that should be used in an LDT communication: my $asciiClient=new IPC::LDT(handle=>HANDLE); my $objectClient=new IPC::LDT(handle=>HANDLE, objectMode=>1); Now you can send and receive data: $data=$asciiClient->receive; @objects=$objectClient->receive; $asciiClient=$client->send("This is", " a message."); $objectClient=$client->send("These are data:", [qw(a b c)]); Requirements ============ IPC::LDT is tested with Perl 5.005 on Solaris and Linux. It should run under later versions as well. The module requires Storable and Filter::Util::Call. Installation ============ This module can be installed as usual by perl Makefile.PL make make test make install Problems? ========= If you run into trouble with this module, feel free to contact me at perl@jochen-stenzel.de. Author, Copyright, License ========================== Copyright (c) 1998-2000 Jochen Stenzel. All rights reserved. This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License distributed with Perl version 5.003 or (at your option) any later version. Please refer to the Artistic License that came with your Perl distribution for more details. The Artistic License should have been included in your distribution of Perl. It resides in the file named "Artistic" at the top-level of the Perl source tree (where Perl was downloaded/unpacked - ask your system administrator if you dont know where this is). Alternatively, the current version of the Artistic License distributed with Perl can be viewed on-line on the World-Wide Web (WWW) from the following URL: http://www.perl.com/perl/misc/Artistic.html Disclaimer ========== This software is distributed in the hope that it will be useful, but is provided "AS IS" WITHOUT WARRANTY OF ANY KIND, either expressed or implied, INCLUDING, without limitation, the implied warranties of MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. The ENTIRE RISK as to the quality and performance of the software IS WITH YOU (the holder of the software). Should the software prove defective, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY CREATE, MODIFY, OR DISTRIBUTE THE SOFTWARE BE LIABLE OR RESPONSIBLE TO YOU OR TO ANY OTHER ENTITY FOR ANY KIND OF DAMAGES (no matter how awful - not even if they arise from known or unknown flaws in the software). Please refer to the Artistic License that came with your Perl distribution for more details.