# man > Net::FTP::dataconn

## NAME
    [Net::FTP::dataconn](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AFTP%3A%3Adataconn/markdown) - FTP Client data connection class

## SYNOPSIS
        # Perform IO operations on an FTP client data connection object:

        $num_bytes_read = $obj->read($buffer, $size);
        $num_bytes_read = $obj->read($buffer, $size, $timeout);

        $num_bytes_written = $obj->write($buffer, $size);
        $num_bytes_written = $obj->write($buffer, $size, $timeout);

        $num_bytes_read_so_far = $obj->bytes_read();

        $obj->abort();

        $closed_successfully = $obj->close();

## DESCRIPTION
    Some of the methods defined in "[Net::FTP](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AFTP/markdown)" return an object which will be derived from this
    class. The dataconn class itself is derived from the "[IO::Socket::INET](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3ASocket%3A%3AINET/markdown)" class, so any normal IO
    operations can be performed. However the following methods are defined in the dataconn class and
    IO should be performed using these.

    "read($buffer, $size[, $timeout])"
        Read $size bytes of data from the server and place it into $buffer, also performing any
        <CRLF> translation necessary. $timeout is optional, if not given, the timeout value from the
        command connection will be used.

        Returns the number of bytes read before any <CRLF> translation.

    "write($buffer, $size[, $timeout])"
        Write $size bytes of data from $buffer to the server, also performing any <CRLF> translation
        necessary. $timeout is optional, if not given, the timeout value from the command connection
        will be used.

        Returns the number of bytes written before any <CRLF> translation.

    "bytes_read()"
        Returns the number of bytes read so far.

    "abort()"
        Abort the current data transfer.

    "close()"
        Close the data connection and get a response from the FTP server. Returns *true* if the
        connection was closed successfully and the first digit of the response from the server was a
        '2'.

## EXPORTS
    *None*.

## KNOWN BUGS
    *None*.

## AUTHOR
    Graham Barr <<gbarr@pobox.com> <mailto:<gbarr@pobox.com>>>.

    Steve Hay <<shay@cpan.org> <mailto:<shay@cpan.org>>> is now maintaining libnet as of version
    1.22_02.

## COPYRIGHT
    Copyright (C) 1997-2010 Graham Barr. All rights reserved.

    Copyright (C) 2013-2014, 2020 Steve Hay. All rights reserved.

## LICENCE
    This module is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself, i.e. under the terms of either the GNU General Public License or the Artistic
    License, as specified in the LICENCE file.

## VERSION
    Version 3.13

## DATE
    23 Dec 2020

## HISTORY
    See the Changes file.

