Net::Write::Layer4 - object for a transport layer (layer 4) descriptor


Net-Write documentation Contained in the Net-Write distribution.

Index


Code Index:

NAME

Top

Net::Write::Layer4 - object for a transport layer (layer 4) descriptor

SYNOPSIS

Top

   use Net::Write::Layer qw(:constants);
   use Net::Write::Layer4;

   my $desc = Net::Write::Layer4->new(
      dst      => '192.168.0.1',
      protocol => NW_IPPROTO_TCP,
      family   => NW_AF_INET,
   );

   $desc->open;
   $desc->send('G'x666);
   $desc->close;

DESCRIPTION

Top

This is the class for creating a layer 4 descriptor.

ATTRIBUTES

Top

dst

The target IPv4 or IPv6 address we will send frames to.

family

Address family, see Net::Write::Layer CONSTANTS section.

protocol

Transport layer protocol to use, see Net::Write::Layer CONSTANTS section.

METHODS

Top

new

Object constructor. You MUST pass a valid dst attribute. Default values:

protocol: NW_IPPROTO_TCP

family: NW_AF_INET

open

Open the interface.

send (scalar)

Send raw data to the network.

close

Close the descriptor.

CAVEATS

Top

Does not work at all under Win32 systems. They can't send frames at layer 4.

SEE ALSO

Top

Net::Write::Layer

AUTHOR

Top

Patrice <GomoR> Auffret

COPYRIGHT AND LICENSE

Top


Net-Write documentation Contained in the Net-Write distribution.

#
# $Id: Layer4.pm 1636 2009-06-10 18:38:24Z gomor $
#
package Net::Write::Layer4;
use strict;
use warnings;
use Carp;

use Net::Write::Layer qw(:constants);
our @ISA = qw(Net::Write::Layer);
__PACKAGE__->cgBuildIndices;

BEGIN {
   my $osname = {
      cygwin  => \&_newWin32,
      MSWin32 => \&_newWin32,
   };

   *new  = $osname->{$^O} || \&_newOther;
}

no strict 'vars';

sub _newWin32 {
   croak("Not possible to use layer 4 under Windows. Use layer 2 instead.\n");
}

sub _newOther {
   my $self = shift->SUPER::new(
      protocol => NW_IPPROTO_TCP,
      family   => NW_AF_INET,
      @_,
   );

   croak("@{[(caller(0))[3]]}: you must pass `dst' parameter\n")
      unless $self->[$__dst];

   $self;
}

1;

__END__