📄 firserver.java
字号:
package control;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import serverInf.GameServer;
import serverInf.Sender;
import serverInf.Serializable;
import serverInf.ServerInterface;
public class FIRServer implements ServerInterface{
private FIRMessage firmsg=null;
private GameServer gameserver;
private Sender[] senders;
private String[] userList;
private int step=0;
public FIRServer(int port,String[] userList){
this.userList=userList;
firmsg=new FIRMessage("server",0,0,-2);
gameserver=new GameServer(port, model.PlatformState.MaxPlayers[0], firmsg,this );
}
public void start(){
gameserver.start();
}
public void reveiveMessage(Serializable message) {
if(step==0)return;
firmsg=(FIRMessage)message;
System.out.println("rec msg:"+firmsg.x+" "+firmsg.y+" "+firmsg.step);
if(firmsg.step==step){
step++;
sendToAll(firmsg);
}
}
public void sendToAll(FIRMessage msg){
for(int i=0;i<senders.length;i++){
if(senders[i]!=null){
senders[i].send(msg);
}
}
}
public void getSenders(Sender[] senders) {
this.senders=senders;
}
public void gameStart(){
//FIRMessage fmsg=new FIRMessage("server", 1, 2, 3);
//sendToAll(fmsg);
if (senders[0] != null && senders[1] != null) {
System.out.println("get two sender");
int turn = (int) (Math.random() * 10) % 2;
//int turn=1;
System.out.println("sender0turn:" + turn);
senders[0].send(new FIRMessage("server", 0, 0, turn));
senders[1].send(new FIRMessage("server", 0, 0, 1-turn));
this.step = 2;
}
}
public void illegalExit(String UserAccount) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
class FIRMessage implements Serializable {
public String userName;
public int x, y, step;
public FIRMessage(String user,int x, int y, int step) {
this.userName=user;
this.x = x;
this.y = y;
this.step = step;
}
public void deserialize(DataInputStream is) throws IOException {
userName = is.readUTF();
x = is.readInt();
y = is.readInt();
step = is.readInt();
System.out.println("deserialize: "+userName+" "+x+" "+y+" "+step);
}
public void serialize(DataOutputStream os) throws IOException {
os.writeUTF(userName);
os.writeInt(x);
os.writeInt(y);
os.writeInt(step);
System.out.println("serialize: "+userName+" "+x+" "+y+" "+step);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -