NAME
P2P::pDonkey::Packet - Perl extension for handling packets of eDonkey peer2peer protocol.
SYNOPSIS
use P2P::pDonkey::Meta qw( makeClientInfo printInfo );
use P2P::pDonkey::Packet ':all';
use Data::Hexdumper;
my $user = makeClientInfo(0, 4662, 'Muxer', 60);
my $raw = packBody(PT_HELLO, $user);
print hexdump(data => $raw);
my ($off, $pt) = (0);
$user = unpackBody(\$pt, $raw, $off);
print "Packet type: ", PacketTagName($pt), "\n";
printInfo($user);
DESCRIPTION
The module provides functions and constants for creating, packing and unpacking packets of eDonkey peer2peer protocol.
- PacketTagName(PT_TAG)
-
Returns string name of PT_TAG or 'Unknown(PT_TAG)' if name is unknown.
- unpackBody(\$pt, $data, $offset)
-
Unpacks data and places packet type in $pt. $offset is changed to last unpacked byte offset in $data. Packet header is not processed in unpackBody(), so $offset should be set on packet type byte offset. Returns list of unpacked data in success.
- packBody(PT_TAG, ...)
-
Packs user data in packet with PT_TAG type and returns byte string. packet header is not included in result.
- unpackUDPHeader($data, $offset)
-
Returns 1 if data starts with PT_HEADER byte.
- packUDPHeader()
-
Returns packed PT_HEADER byte.
- unpackTCPHeader($data, $offset)
-
Unpacks header and returns length of the following packet body.
- packTCPHeader($length)
-
Returns packed header.
eDonkey packet types
Here listed data, returned by unpackBody() and passed to packBody()
for each packet type.
EXPORT
None by default.
AUTHOR
Alexey Klimkin, <klimkin@mail.ru>
SEE ALSO
eDonkey home:
<http://www.edonkey2000.com/>
Basic protocol information:
<http://hitech.dk/donkeyprotocol.html>
<http://www.schrevel.com/edonkey/>
Client stuff:
<http://www.emule-project.net/>
<http://www.nongnu.org/mldonkey/>
Server stuff:
<http://www.thedonkeynetwork.com/>