Sockets através de webservice

Pessoal,

Tenho um webservice rodando que precisa se comunicar com um programa via sockets. Ja consegui fazer o webservice se conectar com o programa usando threads, no entanto não consigo fechar a conexão. E quando tento novamente a conexão é recusada.

Então me surgiram algumas dúvidas:
Qual o melhor forma de fazer essa comunicação, socket simples ou socketchannel?
Devo usar threads?
Alguma recomendação adicional?

Abraço

Alexandre