My five cents would go on spawning children from the beginning - and handing connections over based on availability and current workload.

Perhaps a simple checksum stream in the middle?
 Code:
Client > Server : Hi. (fixed port initial com)
Server > Client : Yo, I'm the child spawned, version, checksum? (port change)
Client > Server: Version X, checksum Y
(in case of no updates:)
Server > Client: Latest. See ya.
Client > Server: Kthnxbye.
(in case of updates:)
Server > Client: Check this out, Z
Client > Server: K, got it. 
Server > Client : Yo tell me again - version, checksum? 
Client > Server: Version X, checksum Y
Server > Client: Latest. See ya.
Client > Server: Kthnxbye.


Sorry Glenn, perhaps not the feedback you wanted, but I do love comms ;).


Edited by Björn (2013-12-24 01:29 AM)
_________________________
as long as it works - why fix it?
If it doesn't work - kix-it!