Tentative Project Description (will be
updated)
In this project, you will
implement TCP-based client-server communication with Java (preferred) or
C/C++, in a group of 2~3 students. You will implement a remote
birthdate query system. A text file containing the user names and their
dates of birth is stored at the server side. The client-side the program
connects to the server-side program through a TCP connection. The client-side
program then sends a request to the server-side program, asking for the date of
birth for a user name. The server-side the program looks up the text file and
sends the answer back to the client through the TCP connection. The client
prints out the result on the screen and then exits. After the client exits,
another client process (probably on another machine) may establish a TCP
connection to the same server process and send queries.
There is no need for
Graphic User Interface (GUI). The syntax of your program should be like
this:
on the server machine: (java)
query_server server_port filename
on the client machine: (java)
query_client server_domain_name server_port username...
// more than one usernames might be specified.
For the format of the text file stored at the server side, each line maintains an entry of one user: "username(with no space), mm/dd/yyyy"
You will design your own application-level protocol sitting above TCP. Your protocol should consider the case that the username may not exist in the text file.
You will submit your source codes as well as a project report. A README file should also be included to describe how to compile and run the program. The project report should give the overall application-level protocol design, the programming design (major interfaces, classes, data members, methods, and call sequences), and representative output.
Submission