I'm writing a relatively large application for my company on Compact Framework 2.0 for a Windows CE device, and I'm working with a single CPU core.
Without getting into details, non-socket related work can, at worst case timing, have 10 or so threads running simultaneously.
This in mind, I'm using sockets for the first time in anything more than a small test application. This larger application will potentially be talking to 7 different ports on the same IP address (example with an obviously false IP, 1.2.3.4:4000, 1.2.3.4:4001, 1.2.3.4:4002, etc.), thus using 7 different socket objects.
Compact Framework 2, 1 CPU core, around 10 non-socket threads in a worst case scenario, and 7 sockets to program send capability and continuous receiving (to process/respond ASAP) for all of them.
I've been considering if asynchronous socket programming would only get me in trouble, with the default max number of threads being 25 (per core) for Compact Framework 2.0, and essentially how "clever" I have to get.
What are your recommendations? Asynchronous or synchronous socket programming, and any particular additional details you'd suggest, or if I am worrying about nothing.