Q: Can we use threads instead of fork on project 1? A: I would like students to use processes instead of threads since thread interface is not uniform across platforms but process interface is. -Jim Q: What machines are available for this project? A: You can use any linux or sun machine in CoC network. For remote access machine, refer to the following link. http://www.cc.gatech.edu/cns/faq/resources.machines.remote.html Remember that when you compile your program on Sun machine, you should use -lsocket -lnsl options. (For example: gcc -lsocket -lnsl -o server server.c ) Q: What types of information should be logged? A: 1) information about the client : Connection time, Client IP, Client Port, 2) Type of the query from client 3) Answer of the query Note1: for connection time, you can use either simple clock() or time() function or gettimeofday() function for more exact time. Note2: 1) should be logged at the main process. But 2) and 3) should be logged at the child processes. You can use either one log file for all information, or several log files : One file for 1) and several different log files for several different clients to avoid file locking problem. Q: How we can test the server from several clients concurrently? Because the response time is too short, we cannot test in concurrent way. A: Stress test to your server is not the main purpose for this project. Just try to test your server (which is using fork() function as described in project description) is working fine by connecting from two or three client programs at different machines. Q: What is the restriction about the function calls? A: The only restriction in the project is fork(). For other functions, you can choose what you want. (For example, you can use recv() function instead of read() function.) Q: What language we are supposed to use for the program? A: Use C or C++.