Liest sich soweit ganz gut. Aber warum der Umweg über die Devices ? Ich würde dann direkt den TCP Port nehmen. Wenn es ohne TCP gehen soll wäre noch ein Unix-Filesocket vorstellbar. Ich denke, daß Du das mit dem /dev/fmsXyz meinst.
Die Idee mit den zwei Unterprozessen kann ich nur unterstützen. Habe ich in meiner Eigenentwicklung auch so umgesetzt. Wobei man es nicht 100% trennen kann.
Da man nur ein "komplettes" ein Sound-Device belegen kann muss man Links und Rechts in einem gemeinsamen Haupt-Thread erstmal von Hand trennen und kann erst dann diese Daten an die anderen Subprozesse weitergeben. Ich würde dann über den Haupt-Task auch den TCP Socket Pool verwalten und alle ausgewerteten Daten an die Clients weitergeben.
Habe bisher unter Linux nur mit Perl TCP Listener erstellt. Aber da sollten sich die C-Version von Windows und Linux hoffentlich nicht zu sehr unterscheiden.