POE::Component::Client::TCPMulti 0.0521
Sponsored Links
POE::Component::Client::TCPMulti 0.0521 Ranking & Summary
File size:
0.023 MB
Platform:
Any Platform
License:
Perl Artistic License
Price:
Downloads:
920
Date added:
2007-04-17
Publisher:
Scott McCoy
POE::Component::Client::TCPMulti 0.0521 description
POE::Component::Client::TCPMulti is a high performance client TCP library.
SYNOPSIS
# Short Usage
POE::Component::Client::TCPMulti->create
( InputEvent => sub {
printf "%s:%d: %s",
$_[CHEAP]->ADDR, $_[CHEAP]->PORT, $_[ARG0];
},
SuccessEvent => sub {
printf "%s:%d: Connection Recieved",
$_[CHEAP]->ADDR, $_[CHEAP]->PORT;
$_[KERNEL]->yield( send => "" );
},
inline_states => {
_start => sub {
$_[KERNEL]->yield( connect => "127.0.0.1", $_ )
for 1..1024;
},
},
InputTimeout => 15,
);
# Longer Usage
POE::Component::Client::TCPMulti->create
( InputEvent => sub {
$_[KERNEL]->yield(send => $_[CHEAP]->ID, "Some Stuff");
},
Initialize => sub {
$_[CHEAP]->input_filter
( "POE::Filter::Block", BlockSize => 4);
},
ErrorEvent => &ErrorHandle,
Disconnected => &ErrorHandle,
TimeoutEvent => &TimeoutHandle,
FailureEvent => &FailureHandle,
SuccessEvent => sub {
$_[CHEAP]->filter("POE::Filter::Line");
# Set timeout for this connection to 350 seconds.
$_[CHEAP]->timeout(350);
# This state is part of the component interface
$_[KERNEL]->yield(send => $_[CHEAP]->ID, "Some Data");
},
Domain => AF_INET, # Optional
Alias => "MySession", # Optional
InputTimeout => 360, # Seconds, Optional
ConnectTimeout => 30, # Seconds, Optional
Timeout => 30, # Seconds, Optional
Filter => "POE::Filter::Something", # Optional
inline_states => {
_start => sub {
$_[KERNEL]->yield(connect => q(127.0.0.1), 25);
# _start isnt needed if you use an alias.
},
},
args => $Session_Args, # Optional
object_states => $Object_States, # Optional
package_states => $Package_States, # Optional
);
# This should be done from within a state in the TCPMulti
# Session. Its purpose is to allow prepropigation of the
# connection heap as well as connection specific timeout
# Settings.
POE::Component::Client::TCPMulti->connect
( RemoteAddress => "127.0.0.1",
RemotePort => 25,
BindAddress => "127.0.0.1", # Optional
BindPort => 0, # Optional
ConnectTimeout => 50, # Connect only.
InputTimeout => 300, # Input only.
Heap => %Propigation );
POE::Component::Client::TCPMulti is a very lightweight, highly optimized component designed for large numbers of simultanious outgoing connections. The major advantage to this module over POE::Component::Client::TCP is that it runs in a single session, reguardless of the number of outgoing simultanious connections. I have found this in fact to use considerable less overhead than POE::Component::Client::TCP in high traffic. The disadvantage lies mearly in the API complexity over POE::Component::Client::TCP.
It is in fact due to this added API complexity that I decided to create a seperate module, rather than altering POE::Component::Client::TCP [ or coaxing Rocco to let me ]. POE::Component::Client::TCP is a great module and this is not designed to completely replace it. It is however designed as a solution for extremely high traffic situations when the overhead of an individual session for each outgoing connection is not appropriate for the added simplicity in the API. Especially considering that this API is not really *that* much more complex.
SYNOPSIS
# Short Usage
POE::Component::Client::TCPMulti->create
( InputEvent => sub {
printf "%s:%d: %s",
$_[CHEAP]->ADDR, $_[CHEAP]->PORT, $_[ARG0];
},
SuccessEvent => sub {
printf "%s:%d: Connection Recieved",
$_[CHEAP]->ADDR, $_[CHEAP]->PORT;
$_[KERNEL]->yield( send => "" );
},
inline_states => {
_start => sub {
$_[KERNEL]->yield( connect => "127.0.0.1", $_ )
for 1..1024;
},
},
InputTimeout => 15,
);
# Longer Usage
POE::Component::Client::TCPMulti->create
( InputEvent => sub {
$_[KERNEL]->yield(send => $_[CHEAP]->ID, "Some Stuff");
},
Initialize => sub {
$_[CHEAP]->input_filter
( "POE::Filter::Block", BlockSize => 4);
},
ErrorEvent => &ErrorHandle,
Disconnected => &ErrorHandle,
TimeoutEvent => &TimeoutHandle,
FailureEvent => &FailureHandle,
SuccessEvent => sub {
$_[CHEAP]->filter("POE::Filter::Line");
# Set timeout for this connection to 350 seconds.
$_[CHEAP]->timeout(350);
# This state is part of the component interface
$_[KERNEL]->yield(send => $_[CHEAP]->ID, "Some Data");
},
Domain => AF_INET, # Optional
Alias => "MySession", # Optional
InputTimeout => 360, # Seconds, Optional
ConnectTimeout => 30, # Seconds, Optional
Timeout => 30, # Seconds, Optional
Filter => "POE::Filter::Something", # Optional
inline_states => {
_start => sub {
$_[KERNEL]->yield(connect => q(127.0.0.1), 25);
# _start isnt needed if you use an alias.
},
},
args => $Session_Args, # Optional
object_states => $Object_States, # Optional
package_states => $Package_States, # Optional
);
# This should be done from within a state in the TCPMulti
# Session. Its purpose is to allow prepropigation of the
# connection heap as well as connection specific timeout
# Settings.
POE::Component::Client::TCPMulti->connect
( RemoteAddress => "127.0.0.1",
RemotePort => 25,
BindAddress => "127.0.0.1", # Optional
BindPort => 0, # Optional
ConnectTimeout => 50, # Connect only.
InputTimeout => 300, # Input only.
Heap => %Propigation );
POE::Component::Client::TCPMulti is a very lightweight, highly optimized component designed for large numbers of simultanious outgoing connections. The major advantage to this module over POE::Component::Client::TCP is that it runs in a single session, reguardless of the number of outgoing simultanious connections. I have found this in fact to use considerable less overhead than POE::Component::Client::TCP in high traffic. The disadvantage lies mearly in the API complexity over POE::Component::Client::TCP.
It is in fact due to this added API complexity that I decided to create a seperate module, rather than altering POE::Component::Client::TCP [ or coaxing Rocco to let me ]. POE::Component::Client::TCP is a great module and this is not designed to completely replace it. It is however designed as a solution for extremely high traffic situations when the overhead of an individual session for each outgoing connection is not appropriate for the added simplicity in the API. Especially considering that this API is not really *that* much more complex.
POE::Component::Client::TCPMulti 0.0521 Screenshot
Advertisements
POE::Component::Client::TCPMulti 0.0521 Keywords
POE
TCPMulti
CHEAP
TCP
KERNEL
TCPMulti 0.0521
tcp library
high performance
optional
sub
states
connection
yield
session
POE::Component::Client::TCPMulti
POEComponentClientTCPMulti
Bookmark POE::Component::Client::TCPMulti 0.0521
POE::Component::Client::TCPMulti 0.0521 Copyright
WareSeeker periodically updates pricing and software information of POE::Component::Client::TCPMulti 0.0521 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of POE::Component::Client::TCPMulti 0.0521 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
cheap air travel
optional forms
black tie optional
cheap gas
cheapoair
optional application for federal employment
cheap flights
tcp multiplexer
optional practical training
optional life insurance
cheap holidays
optional application for federal employment of 612
optional boss
vehicle vin optional equipment
cheap trick
cheap airline tickets
error loading tcp library
jegs high performance
Related Software
POE::Component::Client::Traceroute is a non-blocking traceroute client. Free Download
POE::Component::Client::FTP is a Perl module that implements an FTP client POE Component. Free Download
POE::Component::Client::SMTP is a Perl module for asynchronous mail sending with POE. Free Download
POE::Component::Client::Halo is an implementation of the Halo query protocol. Free Download
POE::Component::Client::HTTP is a HTTP user-agent component. Free Download
POE::Component::Client::Rcon is an implementation of the Rcon remote console protocol. Free Download
POE::Component::Client::AirTunes is a Perl module with stream music to Airport Express. Free Download
POE::Component::ControlPort is a Perl module with network control port for POE applications. Free Download
Latest Software
Popular Software
Favourite Software