Io non conosco come funziona il protocollo irc, ma se non sbaglio nei socket dovrebbe esserci anche la possibilità di impostare l'uso di un pacchetto keep alive che il socket stesso usa per indicare al 'server' che il client è ancora vivo e connesso.
Questo perché a volte i server disconnettono automaticamente i client che non 'generano' traffico dopo un po' di tempo.
Ovviamente questa è solo una mia supposizione visto che, come detto, sono ignorante in merito al protocollo irc :sign0013:
Se invece ho detto una 'castronerie', perdonatemi in anticipo