The IRDA port should perhaps have a single master server process associated with it, which then re-broadcasts all incoming data to whomever wants to listen to it. You can come up with a half dozen ways to structure that code, using notify lists or a tree of subservers or whatever. Any app that wants IRDA data just connects to the master server rather than the device itself.

Keep reading.. lots of good books and good code examples exist on servers that use this general connection method. Heck, even Hijack has it in-kernel for khttpd and kftpd.

-ml