📄 clientserver.java
字号:
import Utilities.*;
import Synchronization.*;
class AdvMessage extends MyObject{
private String fromWhom = null;
private String appMethod = null;
public AdvMessage(String fromWhom,String appMethod){
super("AdvMessage");
this.fromWhom = fromWhom;
this.appMethod = appMethod;
}
public String toString(){
String value = "\nfromWhom=" + fromWhom + ";Method="+ appMethod;
return value;
}
public String fromWhom() { return fromWhom; }
}
class ServerThread extends MyObject implements Runnable {
private Rendezvous r = null;
public ServerThread(Rendezvous r) {
super("ServerThread");
this.r = r;
new Thread(this).start();
}
public void run() {
AdvMessage rrr
= (AdvMessage) r.serverGetRequest();
System.out.println("age()=" + age()
+ ", a ServerThread got a request from " + rrr.fromWhom());
//rrr.doRequest();
System.out.println("age()=" + age()
+ ", a ServerThread finished the request from " + rrr.fromWhom());
r.serverMakeReply(rrr);
}
}
class MultiThreadedServer extends MyObject implements Runnable {
private EstablishRendezvous er = null;
private boolean threadedServer = false;
public MultiThreadedServer(EstablishRendezvous er,
boolean threadedServer) {
super("MultiThreadedServer");
this.er = er;
this.threadedServer = threadedServer;
System.out.println(getName() + " is alive");
new Thread(this).start();
}
public void run() {
while (true) {
Rendezvous r = er.serverToClient();
if (threadedServer) {
System.out.println("age()=" + age() + ", Server got a request");
// spawn a new thread to handle the request asynchronously
new ServerThread(r);
} else { // do it here and now before handling any more clients
AdvMessage rrr
= (AdvMessage) r.serverGetRequest();
System.out.println("age()=" + age()
+ ", Server got a request from " + rrr.fromWhom());
//rrr.doRequest();
System.out.println("age()=" + age()
+ ", Server finished the request from " + rrr.fromWhom());
r.serverMakeReply(rrr);
}
}
}
}
public class ClientServer {
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -