IRC Client Theory - Channel Operators
(Page 4 of 4 )
A channel operator is someone who started the channel and is therefore considered the owner of that channel. Some of the names by which channel operators are also known are "chop" and "chanop." Because of their status, channel operators are given certain powers to keep clients in line. For example, a channel owner does not need to give reasons why he/she took certain actions. If they misbehave, however, a user will be perfectly within their rights to ask an IRC operator to intervene. The channel operator has the following powers:
KICK
- Eject a client from the channel
MODE
- Change the channel's mode
INVITE
- Invite a client to an invite-only channel (mode +i)
TOPIC
- Change the channel topic in a mode +t channel
A channel operator is identified by the '@' symbol next to their nickname whenever it is associated with a channel (i.e. replies to the NAMES, WHO and WHOIS commands).
JOIN
The JOIN command is used by a user to enter a particular channel. The success of a join is determined by the following:
- the user must be invited if the channel is invite-only;
- the user's nick/username/hostname must not match any active bans;
- the correct key (password) must be given if it is set.
After joining a channel the user receives a list of commands used on the server that affect the channel. This includes MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. The JOIN command needs to be broadcast to all servers so that each server knows where to find the users who are on the channel. This allows optimal delivery of PRIVMSG/NOTICE messages to the channel.
PRIVMSG
- Private message
Parameters: <receiver>{,<receiver>} <text to be sent>
The PRIVMSG command is used to send private messages between users. The <receiver> is the nickname of the receiver of the message; it can also be a list of names or of a channel.
You will see all of the above commands and more when we implement an IRC client in Delphi. We will be using Indy components to do the implementation. I would recommend that you read the RFC if you really want to understand this protocol, not to mention that it will help you when you want to write your own IRC client or server application.
Conclusion
Unlike the normal chat applications, IRC gives us a lot more choice and is much more complicated. In a regular chat application the emphasis is on the server application to which every client connects, but on an IRC network the server forms part of a network of servers and in the process enables a large number of clients to connect and talk to each other. The other advantage that IRC has over a chat application is that it allows users to create their own channels where they can talk about whatever they feel like.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |