Skip to content

InnovaTree/CST311-PA1-TCP-UDP-Chat-App

Repository files navigation

Programming Assignment 1

CST 311, Introduction to Computer Networks

READ INSTRUCTIONS CAREFULLY BEFORE YOU START THE ASSIGNMENT.

This programming assignment is due at 11:59 pm on the due date.

Assignment must be submitted electronically to Canvas before the due date and time . Late assignments have a 15% penalty per day and will not be accepted after 2 days late.

Use the Teams on the Team Assignment Document.

This first assignment is a warmup. Select your Team leader and divide up work per the Programming Process instructions.

Instructions:

In this assignment, you will learn the basics of socket programming for UDP and TCP in Python.

You will learn how to send and receive datagram packets using UDP sockets and TCP sockets. Throughout the assignment, you will gain familiarity with a Client Server architecture.

This assignment basically requires you to submit the Python client and server code for the UDP socket programming example in Section 2.7.1 and then also the TCP socket programming example in Section 2.7.2. You should each try to do this on your own first but you will then work with your assigned team for this assignment. Split up your team to have one group do the UDP example together and another group to do the TCP example. The goal of this assignment is a) to learn about how UDP and TCP works and how to program with UDP and TCP and also b) to make sure your computer is set up and working, ready for the next assignment where you will be writing your own code. You are welcome to use whatever IDE the team prefers; for this assignment with about 10 lines of code, you may prefer to simply use an editor but this is up to you. Code it, test it with the following cases:

  • abcdef abc123def
  • ABcdEF
  • AB12cdEF
  • Two Words HERE !!

The naming convention of the file should be PA1_your_last_names_in_alphabetic_order.py. Put your names in the program as well. Put in sufficient comments for you to understand what the code is doing and to clearly explain how your code works.

This assignment is worth 100 points. The grading objectives for the assignment are given below.

Grading Objectives

For TCP and for UDP each: (30 + 30 = 60 points)

(5 points) Socket set up correctly on server

(5 points) Socket set up correctly on client

(5 points) Server waits for input

(5 points) Client sends message to server

(5 points) Server takes input and changes it to all CAPS

(5 points) Client receives and prints out the modified message.

(10 points) All screenshots in one pdf file. Include one Minutes of meeting pdf file.

Teamwork grade: (30 points) Each team member will grade each other teammate out of 10 points during peer evaluation. I will average all team members' grades and scale it to get your teamwork grade out of 30 points. Note that about 30% of your grade will come from your teamwork and team member evaluations.

What to Hand in

Since the code is already given, you need not submit python files for this assignment.

You will hand in the following:

  1. Screenshots of the working UDP and TCP client/server programs for all test cases given above. All screenshots must be in one pdf file.
  2. Minutes of meeting including: Team Lead name, attendance, work division narrative (1-2 lines is good enough).

You must also fill in the peer evaluation form for teamwork grade. In peer evaluation, you evaluate yourself and also your team members. If you do not fill in the peer evaluation form, I will award 0 points as your self evaluation which may bring down your teamwork grade.

Optional Extra-credit Exercises

You will be using your PC to run both the client and server code.

(10 Extra Credit points) If you have time, try to do this in the mininet virtual machine. Submit screenshots of TCP and UDP client/server programs running on the mininet VM.

You must submit extra credit work to a separate portal on Canvas. Since this part is extra credit, everyone in the team may not choose to work on it. Submit a separate pdf for the extra credit with the names of the team members who did work on the extra credit sections.

About

Team Programming Assignment 1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages