# phpman > man > POE::Driver::SysRW

## NAME
    [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown) - buffered, non-blocking I/O using sysread and syswrite

## SYNOPSIS
    "SYNOPSIS" in [POE::Driver](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver/markdown) illustrates how the interface works. This module is merely one
    implementation.

## DESCRIPTION
    This driver implements [POE::Driver](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver/markdown) using sysread and syswrite.

## PUBLIC METHODS
    [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown) introduces some additional features not covered in the base interface.

  new [BlockSize => OCTETS]
### new
### syswrite
    "BlockSize", which indicates the maximum number of OCTETS that will be read at one time.

    "BlockSize" is 64 kilobytes (65536 octets) by default. Higher values may improve performance in
    streaming applications, but the trade-off is a lower event granularity and increased resident
    memory usage.

    Lower "BlockSize" values reduce memory consumption somewhat with corresponding throughput
    penalties.

      my $driver = [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown)->new;

      my $driver = [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown)->new( BlockSize => $block_size );

    Drivers are commonly instantiated within [POE::Wheel](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3AWheel/markdown) constructor calls:

      $_[HEAP]{wheel} = [POE::Wheel::ReadWrite](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3AWheel%3A%3AReadWrite/markdown)->new(
        InputHandle => \*STDIN,
        OutputHandle => \*STDOUT,
        Driver => [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown)->new(),
        Filter => [POE::Filter::Line](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3AFilter%3A%3ALine/markdown)->new(),
      );

    Applications almost always use [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown), so [POE::Wheel](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3AWheel/markdown) objects almost always will
    create their own if no Driver is specified.

### All Other Methods
    [POE::Driver::SysRW](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver%3A%3ASysRW/markdown) documents the abstract interface documented in [POE::Driver](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver/markdown). Please see
    [POE::Driver](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver/markdown) for more details about the following methods:

    flush
    get
    get_out_messages_buffered
    put

## SEE ALSO
    [POE::Driver](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3ADriver/markdown), [POE::Wheel](https://www.chedong.com/phpMan.php/perldoc/POE%3A%3AWheel/markdown).

    Also see the SEE ALSO section of POE, which contains a brief roadmap of POE's documentation.

AUTHORS & COPYRIGHTS
    Please see POE for more information about authors and contributors.

