Connecting and reading/writing on IRC

Hey,
I wanted to connect to an IRC webchat (webchat.quakenet.org), join a channel and read the messages in there, to answer them later.
I already tested some libraries such as IRClib but none of them worked.
My plan was to make a text based game, running over IRC, wich reads some commands from IRC and answeres them. Just like a text-adventure.

How do I implement the connection, reading and writing?

First you need to realize everything you send and receive over a connection are in bytes. Secondly you must realize that if everything anyone ever sends to each other is in bytes, i.e. one’s and zero’s, how can anyone ever make sense of what is being sent? How do we turn these bytes into text or commands etc? This is where “protocols” come in. A protocol is a fancy name for a set of specific rules on how 2 people/programs/parties will interpret the bytes they are sending to each other so that they can make sense of them.

e.g. a protocol might say that “The first 4 bytes will determine the length of the message in bytes, all the other bytes are interpreted as ASCII text until you reach the end of the message and the message ends.”.

So in order to make an IRC client - you need to adhere to the IRC protocol. These are often called RFC’s with a number after them. “RFC” stands for “Request For Comments”. The name comes from when in the early days of network programming - there were no largely used protocols. So people made their own protocols and asked other programmers to comment (suggestions etc).

IRC RFC 1459 http://www.irchelp.org/irchelp/rfc/rfc.html

Here’s a key quote from the RFC above to let you know what you’re dealing with.

[quote]The IRC protocol is a text-based protocol, with the simplest client being any socket program capable of connecting to the server.
[/quote]

In an old project I did with some friends some time ago we had some little IRC stuff.

I upload it with little changes as a gist on github.

You should probably fix the error handling and other stuff before using it, but it should get you started.