9
SIMPLE SOCKET CLIENT Project 1

Project 1. Goals Write a simple TCP/IP client that supports a specific protocol The server is running right now on login.ccs.neu.edu:27993 If your

Embed Size (px)

Citation preview

Page 1: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

SIMPLE SOCKET CLIENTProject 1

Page 2: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Goals

Write a simple TCP/IP client that supports a specific protocol

The server is running right now on login.ccs.neu.edu:27993

If your program is correct, the server will send you a secret flag Turn in your code and the secret flag in order to receive

full credit DUE: September 16, 11:59:59 PM

Page 3: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Your Program

Can be written in whatever language you want Must compile on the CCIS Linux machines and run

on the command line Don’t use crazy libraries that aren’t installed by default Don’t write a program with a GUI If you use an IDE, make sure your code doesn’t have

any hidden dependencies

Page 4: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Command Line Syntax

$ ./client <-p port> <-s> [hostname] [NEU ID]

Your client must follow this syntax exactly Hostname – the name of the server

E.g. login.ccs.neu.edu Port – Optional parameter, the port the server is

listening on By default, port is 27993

Secure – Optional parameter, indicates that the client should use an SSL encrypted socket

NEU ID – your NEU ID

Page 5: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

The Protocol (Part 1)

4 messages HELLO, STATUS, SOLUTION, and BYE

Your client begins by sending HELLOcs3700fall2015 HELLO [your NEU ID]\n

The server will respond with a STATUScs3700fall2015 STATUS [an equation]\n

The equation will be a simple math problem E.g. “5 + 10” or “32 * 509” or “2391 / 93”

Page 6: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

The Protocol (Part 2)

Your client returns a SOLUTION message cs3700fall2015 [the solution]\n

The server may respond with another STATUS, or it may respond with BYE

cs3700fall2015 BYE [secret flag]\n The secret flag is what you want :)

Page 7: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Turning In Your Project

1. Register your group All group members must run the script!

2. Create a directory for your files All of your (well documented) code Makefile README secret_flags (a file with the secret flags of the group

members, one per line)

3. Run the turn-in script

Page 8: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Grading

3% of your total grade To receive full credit:

Turn in working code that compiles/runs successfully

Turn in the secret flags of all group members

If your code doesn’t compile or doesn’t run, you get zero credit

All code will be scanned by plagiarism detection software

Page 9: Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your

Extra Credit

Possible to get 0.5% extra credit (3.5% total) Augment your client to support SSL sockets

The protocol is exactly the same, its just encrypted with SSL

If your SSL client is successful, you will get another secret flag

Put these new keys in the secret_flags file The SSL server is running on the same host, port

27994