Qual è la procedura (mi riferisco ai comandi del protocollo) che il client deve rispettare per connettersi ad un hub? Hai prestato fede all'RFC?
Cimentarsi in un hack di questo tipo richiede parecchio tempo speso dietro alla lettura delle specifiche, non è una cosa semplice, specie per un protocollo vasto come quello di direct connect (tempo fa avevo avuto una mezza idea di scrivere qualcosa in Python ma dopo aver visto la mole di documentazione da studiare mi sono demoralizzato e ho abbandonato :-\).
Un mio personalissimo consiglio: una cosa che ti può facilitare molto quando lavori a progetti di questo tipo è il fare un po' di 'reversing' facendo girare un client DC preesistente e funzionante (come DC++ appunto) e sniffare la sessione tra lui ed il server (nel tuo caso la sola [connessione/autenticazione all'hub]), osservando i comandi che si scambiano.
Hai gia provato questa via?

Hope this helps