I've been trying to make a reliable IRC client for a while now, and I know very little about sockets. I have read the RFC quite a bit, but programmatically responding when appropriate, and detecting errors still boggles me.
How is the program to know the server will send three or four lines before I should send the NICK/USER ?
It seems the only way is to make use of deadline_timers.
I have two failed IRC projects (actually they work, but they aren't good enough to suit me).
One uses boost::ip::tcp::socket's, and the other uses boost::ip::tcp::iostream.
It just seems as if the IRC protocol is a pretty bad one, if it is one at all.