Computer Networks Program Using Java

profileRoystudent
Attachment_1587194029.pdf

IN2011 Computer Networks : Coursework 2

April 3, 2020

1 Tasks

• 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 include:

1. Following the communication between client and server in wireshark.

2. https://tools.ietf.org/html/rfc1459

3. https://tools.ietf.org/html/rfc2812

• 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!

2 Deadline

Sunday 03/05/2020, 17:00

3 Mark Scheme

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

1Be careful when testing things on public networks, read and abide by their rules.

1

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, comment- ing → 1, formatting → 1

4 Hints

• Start by getting the bot to respond each time a particular word is said on a channel.

• 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 using wireshark.

• 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.

2