|
NAMEPOE::Component::Client::FTP - Implements an FTP client POE ComponentVERSIONversion 0.24SYNOPSISuse POE::Component::Client::FTP; POE::Component::Client::FTP->spawn ( Alias => 'ftp', Username => 'test', Password => 'test', RemoteAddr => 'localhost', Events => [ qw( authenticated put_connected put_error put_closed get_connected get_data get_done size ) ] ); # we are authenticated sub authenticated { $poe_kernel->post('ftp', 'command', 'args'); } # data connection is ready for data sub put_connected { my ($status, $line, $param) = @_[ARG0..ARG3]; open FILE, "/etc/passwd" or die $!; $poe_kernel->post('ftp', 'put_data', $_) while (<FILE>); close FILE; $poe_kernel->post('ftp', 'put_close'); } # something bad happened sub put_error { my ($error, $param) = @_[ARG0,ARG1]; warn "ERROR: '$error' occured while trying to STOR '$param'"; } # data connection closed sub put_closed { my ($param) = @_[ARG0]; } # file on the way... sub get_connected { my ($filename) = @_[ARG0]; } # getting data from the file... sub get_data { my ($data, $filename) = @_[ARG0,ARG1]; } # and its done sub get_done { my ($filename) = @_[ARG0]; } # response to a size command sub size { my ($code, $size, $filename) = @_[ARG0,ARG1,ARG2]; print "$filename was $size"; } $poe_kernel->run(); Latest version and samples script can be found at: <http://www.wush.net/poe/ftp> DESCRIPTIONPOE::Component::Client::FTP is a POE component that implements an non-blocking FTP client. One "spawns" an FTP poco from within one's own POE session, asking to receive particular events.CONSTRUCTOR
INPUT EVENTSThese are commands which the poco will accept events for:
OUTPUT EVENTSOutput for connect consists of "connected" upon successful connection to server, and "connect_error" if the connection fails or times out. Upon failure, you can post a "connect" message to retry the connection.Output for login is either "authenticated" if the login was accepted, or "login_error" if it was rejected. Output is for "simple" ftp events is simply "event". Error cases are "event_error". ARG0 is the numeric code, ARG1 is the text response, and ARG2 is the parameter you made the call with. This is useful since commands such as size do not remind you of this in the server response. Output for "complex" or data socket ftp commands is creates "event_connection" upon socket connection, "event_data" for each item of data, and "event_done" when all data is done being sent. Output from put is "put_error" for an error creating a connection or "put_connected". If you receive "put_connected" you can post "put_data" commands to the component to have it write. A "put_done" command closes and writes. Upon completion, a "put_closed" or "put_error" is posted back to you. SEE ALSOthe POE manpage, the perl manpage, the Net::FTP module, RFC 959TODO
BUGS
Please report any other bugs through "bug-POE-Component-Client-FTP@rt.cpan.org" AUTHORMichael Ching <michaelc@wush.net>COPYRIGHT AND LICENSEThis software is copyright (c) 2017 by Michael Ching and Chris Williams.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Visit the GSP FreeBSD Man Page Interface. |