辅导data编程设计、讲解Python,c/c++,Java语言程序

- 首页 >> Matlab编程
Project 2
Due: TUESDAY, DECEMBER 10 (NO LATE PENALTY UNTIL 12)
This project must be done individually. Plagiarism is considered when you use
somebody else’s code but also when you enable somebody to use your code or other
sources.
The purpose of this project is to develop a client/server version of Project 1, a simulation
of Remote Procedure Call communication (RPC).
The server will be multithreaded. The main server’s thread takes care of the connection
requests (establish rendezvous). The spawned client-helper threads will carry out the
two-way communication with the clients. Most of the (already) implemented code will
be on the server site.
On the client side, you will create the different types of client threads (attackers,
defenders, king) that will execute concurrently. These clients will ask the main server’s
thread to establish a connection.
When the connection is accepted by the server, the main server thread will create
another “client helper” thread that will carry out the two-way communication with the
client thread. The client will ask the corresponding “client helper” thread to execute
sequentially the methods that were implemented in Project 1 as part of the run method.
Before each method can be executed, it will send the server a message containing its
name and the method name/number to be executed. This can be implemented in
different ways. One way (but not the only way) would be to use a switch-case
structure. This is similar to the process of creating stubs in the client and server sites.
Note that each run method should contain at least 3 methods. Some of you did not
have a good grasp of Object-Oriented Programming (OOP) design concept and had
only one or two significant methods in the run method. You will have to break down
each thread’s run method into at least 3 methods. If your Project 1 hangs and you
cannot fix it, comment out the code that creates the problem. You will not be
penalized again for any mistake or misinterpretation you had in project1.
Please don’t wait for me to be done with the grading of project 1. It will take a while. If
needed clean your project1, restructure it and take it from there.
I am posting a partial example of a previous project based on a different story. It is not
the only way it can be done. If it does not make sense to you, write your own way of
doing it (as long as it follows the project description).
1. Test your solutions by deploying the client site code in one bird and the server
site code in a different bird (the most ideal situation). Ports 3000 and 5000 should
be open. Check the “accounts” link for the login format. We cannot do this anymore so
disregard it.
2. If, when you test your program, you can remotely connect only on one bird, then use
two windows on that bird and have the clients running on one window and the server
site on a separate window. We cannot do this anymore so disregard it too.
3. The very last possibility is to run client and server on two separate windows on the
local machine.
Lately we encountered so many problems with the network that I am suggesting you to
start with the first case and if not working the second case and as a last alternative case
3.
Submission requirements are similar to project 1. However, you MUST also submit a
readMe file that will clearly mention how the programs should be tested: how I am
supposed to run the client site and how I am supposed to run the server site. Keep the
hardcoding to the minimum.
An additional file that you need to submit is a sample of the output that your program
creates. You should have some output on the client side as well (for example what
the request is) while most of the output (following the story) will be on the server side.
In conclusion they are 3 items to submit. Each of them must contain your Lastname
For example: Fluture_CS715_P2.zip or Fluture_CS344_P2.zip
Fluture_readMe.txt (make sure that following your instructions I will
be able to run your project; there is no time for rechecks so if I cannot run it the
first time I will not able to grade it and give any credit)
Fluture_output.txt
Good luck !!!!!!!!!!!!!!

站长地图