in reply to Re^3: Two TCP Connections, one script
in thread Two TCP Connections, one script

Sorry for the confusion.
This post is the correct process of the script:
1. The telemetry xml file is received on the first port (12345)
2. The waypoint xml file is sent to the second port (6789)
The script needs to act as the client to both ports where it is reading from one port (12345) and send to another (6789). The questions I have is how do I know which port I'm reading from and which port I'm sending to?

Replies are listed 'Best First'.
Re^5: Two TCP Connections, one script
by BrowserUk (Patriarch) on Apr 05, 2008 at 13:42 UTC

    If you are reading telemetry from one port and writing (derived?) waypoints to the other, why do you need concurrency? On the surface, it sounds much like a simple filter program using sockets instead of pipes?

    Something as simple as this might be all you need:

    use IO::Socket; use XML::Simple; my $cTelemetry = IO::Socket::INET->new( 'localhost:12345' ) or die $!; my $cWaypoints = IO::Socket::INET->new( 'localhost:6789' ) or die $!; while( <cTelemetry> ) { my $xmlTelemetry = XMLin( $_ ); if( my $xmlWaypoint = deriveWaypoint( $xmlTelemetry ) ){ print $cWaypoints $xmlTelemetry; } }

    That leaves you to write the code for deriving waypoints from telemetry data, but unless that is a slow process, there does not seem much scope for concurrency here?


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.