|
CS 580 Client-Server Programming
Fall Semester, 2002
Assignment 2
|
|
|
   
Assignment Index
       
© 2002, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 30-Sep-02
|
|
Assignment
2 – Adding Numbers
Due Oct 10, 2002
Problem
1.
Write an iterative server (no threads) to add numbers.
Protocol
Client
Request
When
the client connects to the server it will send a command followed by a carriage
return (ASCII character 13) and line feed (ASCII character 10). After the line
feed will be the arguments for the command. A semicolon (;) separates
arguments. Spaces before and after arguments are optional. A carriage return
and line feed is placed after the last argument. Arguments are integers.
There
is only one command: add. The command is lower case. The following is an
example of the add command:
add<cr-lf>3;4; 6; 12; -13<cr-lf>
<cr-lf>
indicates a carriage return followed by a line feed
Server
Responses
The
server has two basic responses: ok and error.
ok
The
response to a valid client request is ok followed by <cr-lf> followed by
the sum of the numbers followed by <cr-lf>. As a server only handles one
request per connection, the server then closes the connection. The following is
the response to the above request.
ok<cr-lf>12<cr-lf>
error
If
the client sends an illegal command the server should respond with:
error<cr-lf>Invalid command<cr-lf>
If
the client sends a correct command but the arguments are not valid numbers or
the arguments are not correctly formatted the server should respond with:
error<cr-lf>Invalid arguments<cr-lf>
Language
The
assignment is to be done using the language in which you qualified for the
course: Smalltalk or Java.
Grading
|
Percent
of Grade
|
Working
Code
|
30%
|
Comments
|
10%
|
Quality
of Code
|
30%
|
Unit
Tests
|
30%
|
Working
Code. How well your code meets the functional requirements listed above
accounts for 30% of the grade for the assignment.
Comments.
Having the appropriate comments in your code will count for 10% of the grade.
Quality
of Code. Having good quality of code counts for 30% of the grade. Quality of
code includes formatting, names and modularity.
Unit
Tests. You should have JUnit or SUnit tests for the non-network portion of your
code.
What
to Turn in
Turn
in hard copy and an electronic copy of your code for problem 1. Java people
need to place an electronic copy of your code in a CVS repository in your class
rohan account (which will be handed out in class). Your account needs to have
the environment variable CVSROOT defined. You need to define a module
assignment2. Check out the assignment2 module should give the code for this
assignment. This includes the unit tests. Smalltalk people need to place their
code in their store repository. Details of your store repository will be
emailed to you.
Late
Policy
See
the course syllabus for the late policy.
Copyright ©, All rights reserved.
2002 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA.
OpenContent license defines the copyright on this document.
   
visitors since 30-Sep-02