Eine tcp-Socketverbindung ist eine Verbindung zwischen 2 Anwendungen und nicht eine von 3 oder mehreren, das ist sicher das Verständnisproblem. Wenn etwas empfangen werden soll, dann muß das Betriebssystem schon wissen, an wen es die Daten ausliefern muß. Wenn Du also 2 Programme hast, die um die gleichen empfangenen Daten kämpfen ist das sicher nicht Sinn der Sache und klingt auch nicht gerade wie zuverlässig. Alles klar?
Wenn Du das trotzdem willst, dann muß Du die Daten an einer Stelle empfangen und dann eine logische Datenverteilung aufsetzen, die dann sicher von den empfagenen Daten abhängt. 2 Programme können natürlich in ein und denselben Socket senden. Wenn der Empfänger auf der anderen Seite dann nicht durcheinander kommt, sich also etwas vermischen kann, ist das ok. Ansonsten mußt Du die Daten dann auch erst über einen Pufferverwalter senden, der die Reihenfolge dann sichert.
$SIG{USER} = sub {love 'Perl' or die};