Unformatted Attachment Preview
IN2011 Computer Networks : Coursework 2
April 3, 2020
• Install an IRC client.
• Gain access to an IRC server. Options include: 1. install one on your VM
image, 2. using the one that will hopefully be provided at City, 3. using
a public IRC network1
• Read and understand how the IRC protocol works. Sources of information
1. Following the communication between client and server in wireshark.
• Write a Java program (a “bot”) that can connect to an IRC server at a
user-selected IP address and port number, can join a user selected channel
and can interact with the users on that channel. You must write the code
that interacts with the protocol yourself ! Do not use a library for this part!
Sunday 03/05/2020, 17:00
This is individual coursework. Each of the four questions is worth 5% of the
course mark and will be marked out of 5 according to the following criteria:
Functionality Connect to server → 1, receive messages from other users → 2,
respond to other users → 2
careful when testing things on public networks, read and abide by their rules.
Protocol Number of different commands used by the bot, 4 commands → 1, 5
commands → 2, 6 commands → 3, 7 commands → 4, 8+ commands → 5
Creativity How interesting and exciting is the bot → 5
Code Quality Clarity & simplicity of design → 2, readability → 1, commenting → 1, formatting → 1
• Start by getting the bot to respond each time a particular word is said on
• Although submissions are individual, it is very much encouraged that you
work with other students in testing the bots. If you all connect to the
same channel you can interact with the bots there, or even get the bots
to interact with each other!
• If you want to know how to do something using the IRC protocol, you can
always do it using an IRC client and then look at what packets were sent
• Although the details of the implementation are different, Discord and
Slack are heavily based on IRC and use many of the same concepts.
• If you get really stuck, you can use nc or putty (in telnet mode) to talk
the IRC protocol directly to the server.