Upload
cathleen-hall
View
212
Download
0
Embed Size (px)
Citation preview
SIMPLE SOCKET CLIENTProject 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 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
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
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
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”
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 :)
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
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
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