{
    "content": [
        {
            "type": "text",
            "text": "# Net::FTP::dataconn (perldoc)\n\n## NAME\n\nNet::FTP::dataconn - FTP Client data connection class\n\n## SYNOPSIS\n\n# Perform IO operations on an FTP client data connection object:\n$numbytesread = $obj->read($buffer, $size);\n$numbytesread = $obj->read($buffer, $size, $timeout);\n$numbyteswritten = $obj->write($buffer, $size);\n$numbyteswritten = $obj->write($buffer, $size, $timeout);\n$numbytesreadsofar = $obj->bytesread();\n$obj->abort();\n$closedsuccessfully = $obj->close();\n\n## DESCRIPTION\n\nSome of the methods defined in \"Net::FTP\" return an object which will be derived from this\nclass. The dataconn class itself is derived from the \"IO::Socket::INET\" class, so any normal IO\noperations can be performed. However the following methods are defined in the dataconn class and\nIO should be performed using these.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **EXPORTS**\n- **KNOWN BUGS**\n- **AUTHOR**\n- **COPYRIGHT**\n- **LICENCE**\n- **VERSION**\n- **DATE**\n- **HISTORY**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Net::FTP::dataconn",
        "section": "",
        "mode": "perldoc",
        "summary": "Net::FTP::dataconn - FTP Client data connection class",
        "synopsis": "# Perform IO operations on an FTP client data connection object:\n$numbytesread = $obj->read($buffer, $size);\n$numbytesread = $obj->read($buffer, $size, $timeout);\n$numbyteswritten = $obj->write($buffer, $size);\n$numbyteswritten = $obj->write($buffer, $size, $timeout);\n$numbytesreadsofar = $obj->bytesread();\n$obj->abort();\n$closedsuccessfully = $obj->close();",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 30,
                "subsections": []
            },
            {
                "name": "EXPORTS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "KNOWN BUGS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "LICENCE",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "VERSION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DATE",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 2,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Net::FTP::dataconn - FTP Client data connection class\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "# Perform IO operations on an FTP client data connection object:\n\n$numbytesread = $obj->read($buffer, $size);\n$numbytesread = $obj->read($buffer, $size, $timeout);\n\n$numbyteswritten = $obj->write($buffer, $size);\n$numbyteswritten = $obj->write($buffer, $size, $timeout);\n\n$numbytesreadsofar = $obj->bytesread();\n\n$obj->abort();\n\n$closedsuccessfully = $obj->close();\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Some of the methods defined in \"Net::FTP\" return an object which will be derived from this\nclass. The dataconn class itself is derived from the \"IO::Socket::INET\" class, so any normal IO\noperations can be performed. However the following methods are defined in the dataconn class and\nIO should be performed using these.\n\n\"read($buffer, $size[, $timeout])\"\nRead $size bytes of data from the server and place it into $buffer, also performing any\n<CRLF> translation necessary. $timeout is optional, if not given, the timeout value from the\ncommand connection will be used.\n\nReturns the number of bytes read before any <CRLF> translation.\n\n\"write($buffer, $size[, $timeout])\"\nWrite $size bytes of data from $buffer to the server, also performing any <CRLF> translation\nnecessary. $timeout is optional, if not given, the timeout value from the command connection\nwill be used.\n\nReturns the number of bytes written before any <CRLF> translation.\n\n\"bytesread()\"\nReturns the number of bytes read so far.\n\n\"abort()\"\nAbort the current data transfer.\n\n\"close()\"\nClose the data connection and get a response from the FTP server. Returns *true* if the\nconnection was closed successfully and the first digit of the response from the server was a\n'2'.\n",
                "subsections": []
            },
            "EXPORTS": {
                "content": "*None*.\n",
                "subsections": []
            },
            "KNOWN BUGS": {
                "content": "*None*.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Graham Barr <gbarr@pobox.com <mailto:gbarr@pobox.com>>.\n\nSteve Hay <shay@cpan.org <mailto:shay@cpan.org>> is now maintaining libnet as of version\n1.2202.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright (C) 1997-2010 Graham Barr. All rights reserved.\n\nCopyright (C) 2013-2014, 2020 Steve Hay. All rights reserved.\n",
                "subsections": []
            },
            "LICENCE": {
                "content": "This module is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself, i.e. under the terms of either the GNU General Public License or the Artistic\nLicense, as specified in the LICENCE file.\n",
                "subsections": []
            },
            "VERSION": {
                "content": "Version 3.13\n",
                "subsections": []
            },
            "DATE": {
                "content": "23 Dec 2020\n",
                "subsections": []
            },
            "HISTORY": {
                "content": "See the Changes file.\n",
                "subsections": []
            }
        }
    }
}