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

I'm confused. Mostly because you are too I think.

  1. In your OP you said:
    There is a server across the way. This server has two ports allocated, A and B.
    A is port 12345 and its job is to send the telemetry of an aircraft.
    B is port 6789 and its job is to send the waypoint locations.
  2. But in the above post you say:
    port 12345 will only receive the telemetry in XML format and
    port 6789 will only send the waypoint XML file.

Which is it?

You'll need to clarify whether the script you want, needs to act

And finally:

My question would be how can I separate these processes?

What do you mean by this?

In the code you reposted, there is an if statement. In one half of it you would be dealing with telemetry data. In the other, waypoint data.

What problem are you seeing with that?


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: Two TCP Connections, one script
by deadpickle (Pilgrim) on Apr 05, 2008 at 06:09 UTC
    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?

      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.