CEN 4500  Data Communications
Project: Java Socket Programming

 

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