Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ASSESSMENT 2 BRIEF

Subject Code and Title

NDS203 Networking and Database Systems

Assessment

Networking Project

Individual/Group

Individual

Length

Extension of a networking project

Learning Outcomes

The Subject Learning Outcomes demonstrated by successful completion of the task below include:

a) Evaluate the fundamental concepts of networking architecture. b) Implement server/client communication techniques.

Submission

Due by 11:55pm AEST/AEDT Sunday end of Module 9.

Weighting

40%

Total Marks

100 marks

Assessment Task

Demonstrate understanding of networking fundamentals by extending an existing TCP chat project.

Please refer to the Instructions for details on how to complete this task.

Context

This task requires working with an existing chat project from class provided below and extending it further. The project is lacking in features and to extend it, you will need to read the code,

understand and use it as reference to take it further. Competency will be demonstrated by managing connections, listening for incoming packets on multiple threads, sending, receiving, and reading

packets.

Completing this assessment will give you the tools to understanding networkingfundamentals which can be applied to many socket-based projects.

Instructions

Download and unzip the example project: C# TCP Chat Program.zip

Inside the zip file you will finda project that allows a user to choose between being a server or client for the chat application. The server accepts connections and broadcasts messages to all clients.

Clients can connect to the server, send and receive chat messages. You will also find a readme.txt inside the project for more guidance.

Currently the project is limited and needs extending to make it a fuller chat experience.

Step 1

Users currently do not have usernames. When a user joins the server, they should also send their proposed username, they should send this data in the form of !username [new_username] e.g

!username Bob. When the server receives this message, it needs to see if this name is in use. If no other user is using this name, then let the user know it was a success. If it is already in use, send a message to the user to tell them it failed. If the user gets a failed message, they should be

disconnected on both client and server side.

Step 2

After adding usernames, chat messages broadcast from the server should include the username of the person who sent them in.

Step 3

Clientscan change their username whenever they want, using the !user [new_username] and if successful, the change should be announced to the rest of the clients.

Step 4

There area number of special commands that need to be implemented. Currently if a user types in !commands to the server it will send a message back stating what commands can be done. These

other commands have not been implemented yet and need to be done by you. The commands need to do the following:

!who – When server receives this message, it sends back messages containing the names of the connected users to the client to be output to the chat window

!about – Server should send information back to the client about its creator, purpose and year of development

!whisper [username] – sends a message to a specified user directly or lets sender know it cannot find anyone by that username

Also implement a custom command of your own devising

Step 5

The server can designate a moderator with !mod [username] e.g. !mod Bob. Moderators can kick other clients using !kick [username]. If the server uses the !mod command on a moderator, then  they are demoted back to normal client. Server can also use !mods command to see a list of

moderators output to the chat window.

Referencing

It is essential that you use appropriate APA style for citing and referencing research. Please see more information on referencing herehttps://library.torrens.edu.au/academicskills/apa/tool

Submission Instructions

Zip all projects, related files and any instructional readme.txt files for submission. Name this zip file using this format: NDS203 [your name]_ [studentID]_Assignment2.zip

Submit this task via the Assessment linkin the main navigation menu in NDS203 Networking and Database Systems. The Learning Facilitator will provide feedback via the Grade Centre in the LMS portal. Feedback can be viewed in My Grades.

Before you submit your assessment, please ensure you have read and understand the conditions outlined in the Academic Integrity Code Handbook. If you are unsure about anything in the

Handbook, please reach out to your Learning Facilitator.