1 2 3Release 4======= 5 6IPC::LDT 2.03. 7 8 9Overview 10======== 11 12To install blocking, record oriented IPC communication, Perls builtin 13function print() and the operator <> are sufficient. But if there's a 14need to implement non blocking, stream oriented communication, additional 15efforts are required. 16 17IPC::LDT is a class to build objects which transparently perform a "length 18driven transfer". "LDT" is a simple low level protocol for non blocking 19communication, acting between the transfer protocol (TCP/IP) and the 20application protocol. 21 22An LDT message contains of two parts: a fix length prefix describing the 23length of the second part, and the kernel message (of the described length). 24 25 Example: if the prefix length is 4, a message "msg" 26 would be transfered as "0003msg". 27 28IPC::LDT provides a simple interface to use this protocol. A user sends and 29receives messages by simple method calls, while the LDT objects perform the 30complete translation into and from LDT messages (with prefix) and all the 31necessary low level IO handling to transfer stream messages on non blocking handles. 32 33IPC::LDT objects can be configured to transfer simple string messages as well 34as complex data structures. Additionally, they allow to delay the transfer of 35certain messages in a user defined way. 36 37 38Synopsis 39======== 40 41Load the module as usual: 42 43 use IPC::LDT; 44 45Make an LDT object for every handle that should be used in an LDT communication: 46 47 my $asciiClient=new IPC::LDT(handle=>HANDLE); 48 my $objectClient=new IPC::LDT(handle=>HANDLE, objectMode=>1); 49 50Now you can send and receive data: 51 52 $data=$asciiClient->receive; 53 @objects=$objectClient->receive; 54 55 $asciiClient=$client->send("This is", " a message."); 56 $objectClient=$client->send("These are data:", [qw(a b c)]); 57 58 59Requirements 60============ 61 62IPC::LDT is tested with Perl 5.005 on Solaris and Linux. 63It should run under later versions as well. 64 65The module requires Storable and Filter::Util::Call. 66 67 68Installation 69============ 70 71This module can be installed as usual by 72 73 perl Makefile.PL 74 make 75 make test 76 make install 77 78 79What's new? 80=========== 81 822.03 enforces perl version 5.00503 (necessary to use the fields pragma). 83 84 85Problems? 86========= 87 88If you run into trouble with this module, feel free 89to contact me at perl@jochen-stenzel.de. 90 91 92Author, Copyright, License 93========================== 94 95Copyright (c) 1998-2000 Jochen Stenzel. All rights reserved. 96 97This program is free software, you can redistribute it and/or modify it 98under the terms of the Artistic License distributed with Perl version 995.003 or (at your option) any later version. Please refer to the 100Artistic License that came with your Perl distribution for more 101details. 102 103The Artistic License should have been included in your distribution of 104Perl. It resides in the file named "Artistic" at the top-level of the 105Perl source tree (where Perl was downloaded/unpacked - ask your 106system administrator if you dont know where this is). Alternatively, 107the current version of the Artistic License distributed with Perl can 108be viewed on-line on the World-Wide Web (WWW) from the following URL: 109 110 http://www.perl.com/perl/misc/Artistic.html 111 112 113Disclaimer 114========== 115 116This software is distributed in the hope that it will be useful, but 117is provided "AS IS" WITHOUT WARRANTY OF ANY KIND, either expressed or 118implied, INCLUDING, without limitation, the implied warranties of 119MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. 120 121The ENTIRE RISK as to the quality and performance of the software 122IS WITH YOU (the holder of the software). Should the software prove 123defective, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR 124CORRECTION. 125 126IN NO EVENT WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY CREATE, 127MODIFY, OR DISTRIBUTE THE SOFTWARE BE LIABLE OR RESPONSIBLE TO YOU OR TO 128ANY OTHER ENTITY FOR ANY KIND OF DAMAGES (no matter how awful - not even 129if they arise from known or unknown flaws in the software). 130 131Please refer to the Artistic License that came with your Perl 132distribution for more details. 133