Avevo il tuo stesso problema...
Poi ho deciso, passando a .NET, di abbandonare i socket.
1) se si interrompe la trasmissione da porta a porta rischi di imbattere in errori non gestibili
2) il socket ti costringe a dedicare una porta a quell'applicazione
Perchè non fai un bel servizio da lasciare attivo e di connetti al servizio tramite l'ide di .net?
Un web service in sostanza, che gira sulla porta 80
fabio gix