From 1e586a879c2ee1b3952f716b7dcf0f45ccc2ae5f Mon Sep 17 00:00:00 2001 From: Thea Olivia <theaolivia.mail@gmail.com> Date: Sat, 14 May 2016 18:47:53 +0700 Subject: [PATCH] fixing things, add channel to processID --- src/client/SisTerClient.java | 8 +- src/server/Paxos.java | 32 +++++++ src/server/Server.java | 145 +++++++------------------------- src/server/Server.java.orig | 157 +++++++++++++++++++++++++++++++++++ src/server/SisterServer.java | 12 ++- 5 files changed, 237 insertions(+), 117 deletions(-) create mode 100644 src/server/Server.java.orig diff --git a/src/client/SisTerClient.java b/src/client/SisTerClient.java index 2aaf16b..9a7c12e 100644 --- a/src/client/SisTerClient.java +++ b/src/client/SisTerClient.java @@ -41,6 +41,12 @@ public class SisTerClient { c.sendMessageToClient("localhost", 8888,"{\"method\":\"prepare_proposal\",\"proposal_id\": ["+c.getProposalNum()+","+c.getPlayerID()+"]}"); - } + public void vote(){ + + } + + public void send_request(R){ + + } } diff --git a/src/server/Paxos.java b/src/server/Paxos.java index 49dbffe..f25064a 100644 --- a/src/server/Paxos.java +++ b/src/server/Paxos.java @@ -7,11 +7,19 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; +import java.util.HashMap; + +import java.lang.Thread; + public class Paxos { + Server server; DatagramSocket clientSocket; private int n; // number of request + public Paxos(){ + this. + } public void sendRequest(String sentence, String host, int port) { clientSocket = new DatagramSocket(); @@ -23,6 +31,30 @@ public class Paxos clientSocket.send(sendPacket); } + public void runPaxos() { + int n_proses = server.getnumProposers() + server.getnumAcceptors() + server.getnumLearners(); + for (int i=0; i<n_proses; i++){ + Thread t = new Thread(this, ""+i); + t.start(); + } + } + + public int nextProposalNumber(int PID, int cur_Pnum){ + int i = 0; + while (true) { + if (i<=cur_Pnum){ + i++; + } else { + if (i%server.getnumProposers()==PID) + return i; + else + i++; + } + if (i==MAX_PROPNUM) + return -1; + } + } + public boolean IsUnique(){ // check the uniqueness of ID } diff --git a/src/server/Server.java b/src/server/Server.java index b1625f8..fa0f27f 100644 --- a/src/server/Server.java +++ b/src/server/Server.java @@ -15,129 +15,46 @@ import org.json.JSONObject; public class Server implements Runnable { - private Paxos paxos; - private String host; - private int port; - private Socket socket; - private final String DEFAULT_HOST = "localhost"; - private ServerSocket serverSocket; - private int numPlayer; - private boolean playing; - //PrintStream streamToClient; - BufferedReader streamFromClient; - Socket fromClient; - static int count = 0; - Thread thread; - - public Server() - { - this.host = "localhost"; - this.port = 9999; - this.socket = null; - - try{ - serverSocket = new ServerSocket(1001); - } catch (Exception e) { - e.printStackTrace(); + private int totalProcesses; + private int numProposers; + private int numAcceptors; + private int numLearners; + private int decision=-1; + + public Network(int numProposers, int numAcceptors, int numLearners){ + totalProcesses = numProposers + numAcceptors + numLearners; + queues = new LinkedList[totalProcesses]; + for (int i=0; i<totalProcesses; i++) { + queues[i] = new LinkedList<String>(); } - + this.numProposers = numProposers; + this.numAcceptors = numAcceptors; + this.numLearners = numLearners; } - - public Server(String _host, int _port){ - try{ - host = _host; - port = _port; - serverSocket = new ServerSocket(_port); - socket = serverSocket.accept(); - playing = false; - }catch(IOException e){ - - } - - } - public boolean isWerewolf() - { - boolean yes = false; - // for werewolf - return yes; - } - - public void connect(String host, int port) throws IOException - { - this.host = host; - this.port = port; - socket = new Socket(host, port); - System.out.println("Game sudah dimulai... V^__^V"); + public int getnumAcceptors(){ + return numAcceptors; } - public JSONObject receiveJSON() throws IOException - { - InputStream in = socket.getInputStream(); - ObjectInputStream i = new ObjectInputStream(in); - JSONObject line = null; - try { - line = (JSONObject) i.readObject(); - } catch (ClassNotFoundException e){ - e.printStackTrace(); - } - - return line; - + public int getnumProposers(){ + return numProposers; } - public void sendJSON(JSONObject jsonObj) throws IOException - { - JSONObject jsonObject2 = new JSONObject(); - - OutputStream out = socket.getOutputStream(); - ObjectOutputStream o = new ObjectOutputStream(out); - o.writeObject(jsonObject2); - out.flush(); + public int getnumLearners(){ + return numLearners } - - public void runServer() - { - try{ - while(true){ - fromClient = serverSocket.accept(); - count++; - //streamFromClient = new BufferedReader(fromClient.getInputStream()); - - InputStreamReader in = new InputStreamReader((fromClient.getInputStream())); - //PrintStream streamToClient = new PrintStream(fromClient.getInputStream()); - String str = streamFromClient.readLine(); - System.out.println(str); - //streamToClient.println("Halo, "+str); - } - } catch (Exception e){ - e.printStackTrace(); - } finally { - try { - fromClient.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - - public String receiveMessage() throws IOException{ - String temp = null; - BufferedReader inFromClient =new BufferedReader(new InputStreamReader(socket.getInputStream())); - temp = inFromClient.readLine(); - return temp; - } - public void sendMessage(String out) throws IOException{ - DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream()); - String response = out + '\n'; - outToClient.writeBytes(response); - } - @Override - public void run() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } + // untuk channel communication dari proses processID + public Channel getChannel(int processID){ + if (processID <0 || processID >= totalProcesses) { + throw new Error ("Invalid process ID"); + } + + Channel c = new Channel(); + c.index = processID; + c.network = this; + return c; + } } diff --git a/src/server/Server.java.orig b/src/server/Server.java.orig new file mode 100644 index 0000000..16523ee --- /dev/null +++ b/src/server/Server.java.orig @@ -0,0 +1,157 @@ +package sisterserver; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.net.ServerSocket; +import java.net.Socket; +import org.json.JSONObject; + +public class Server implements Runnable +{ +<<<<<<< HEAD + + private Paxos paxos; + private String host; + + private String host; + +======= + private Paxos paxos; + private String host; +>>>>>>> 69b6100463f19dcd49485fc68a92559c4d2bd04a + private int port; + private Socket socket; + private final String DEFAULT_HOST = "localhost"; + private ServerSocket serverSocket; + private int numPlayer; + private boolean playing; + //PrintStream streamToClient; + BufferedReader streamFromClient; + Socket fromClient; + static int count = 0; + Thread thread; + + public Server() + { + this.host = "localhost"; + this.port = 9999; + this.socket = null; + + try{ + serverSocket = new ServerSocket(1001); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public Server(String _host, int _port){ + try{ + host = _host; + port = _port; + serverSocket = new ServerSocket(_port); + socket = serverSocket.accept(); + playing = false; + }catch(IOException e){ + + } + + } + public boolean isWerewolf() + { + boolean yes = false; + // for werewolf + return yes; + } + + public void connect(String host, int port) throws IOException + { + this.host = host; + this.port = port; + socket = new Socket(host, port); + System.out.println("Game sudah dimulai... V^__^V"); + + } + + public JSONObject receiveJSON() throws IOException + { + InputStream in = socket.getInputStream(); + ObjectInputStream i = new ObjectInputStream(in); + JSONObject line = null; + try { + line = (JSONObject) i.readObject(); + } catch (ClassNotFoundException e){ + e.printStackTrace(); + } + + return line; + + } + + public void sendJSON(JSONObject jsonObj) throws IOException + { + JSONObject jsonObject2 = new JSONObject(); + + OutputStream out = socket.getOutputStream(); + ObjectOutputStream o = new ObjectOutputStream(out); + o.writeObject(jsonObject2); + out.flush(); + } + + public void runServer() + { + try{ + while(true){ + fromClient = serverSocket.accept(); + count++; + //streamFromClient = new BufferedReader(fromClient.getInputStream()); + + InputStreamReader in = new InputStreamReader((fromClient.getInputStream())); + //PrintStream streamToClient = new PrintStream(fromClient.getInputStream()); + String str = streamFromClient.readLine(); + System.out.println(str); + //streamToClient.println("Halo, "+str); + } + } catch (Exception e){ + e.printStackTrace(); + } finally { + try { + fromClient.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } +<<<<<<< HEAD +======= + +>>>>>>> 69b6100463f19dcd49485fc68a92559c4d2bd04a + + public String receiveMessage() throws IOException{ + String temp = null; + BufferedReader inFromClient =new BufferedReader(new InputStreamReader(socket.getInputStream())); + temp = inFromClient.readLine(); + return temp; + } + public void sendMessage(String out) throws IOException{ + DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream()); + String response = out + '\n'; + outToClient.writeBytes(response); + } + @Override + public void run() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } +<<<<<<< HEAD +======= + +>>>>>>> 69b6100463f19dcd49485fc68a92559c4d2bd04a + + +} diff --git a/src/server/SisterServer.java b/src/server/SisterServer.java index 3db477d..9b6e96d 100644 --- a/src/server/SisterServer.java +++ b/src/server/SisterServer.java @@ -10,6 +10,11 @@ import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.*; import org.json.JSONObject; +import org.json.JSONException; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * @@ -28,7 +33,7 @@ public class SisterServer { while(true) { Socket connectionSocket = welcomeSocket.accept(); - BufferedReader inFromClient =new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); + BufferedReasder inFromClient =new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); System.out.println("Received: " + clientSentence); @@ -43,11 +48,14 @@ public class SisterServer { System.out.println(j.get("method"));*/ private int sequenceID; private int processID; - int + Client c = new Client(1,9999); c.receiveMessageFromClient("localhost", 8888); // creating consensus + public void consensus(){ + + } } -- GitLab