Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.96 KB | None | 0 0
  1. terminal window 1: 0.0.0.0       10000 working has ip 192.168.0.100
  2.  
  3. terminal window 2: 192.168.0.100 10001 working has ip 192.168.0.101
  4.  
  5.  
  6. server                     client
  7. |listen
  8. |listen
  9. |listen
  10. |listen
  11. |listen
  12. |listen
  13. |listen
  14. |listen
  15.                            | sending request to server
  16. |Socket socket = serverSocket.accept();
  17. |new Thread(new TCPRequestHandler(socket));
  18. |listen      | new thread -> processing request from client
  19. |listen      | new thread -> sending response to client
  20.                            |
  21.                            | sending request to server
  22.                            | sending request to server
  23.  
  24.  
  25.  
  26.  
  27.  
  28. public class Agent {
  29.     String ipAddress;
  30.     int port;
  31.    
  32.    @Override
  33.    public String toString() {
  34.        return this.ipAddress + ":" + String.valueOf(this.port);
  35.    }
  36. }
  37.  
  38. public class TCPServer {
  39.     Bool isRoot = false;
  40.     List<Agent> agentList = new Array...;
  41.    
  42.  
  43.     public void main(String argv[]) throws Exception {
  44.         if(argv[0].equals("0.0.0.0")) {
  45.             this.isRoot = true;
  46.         } else {
  47.             ...
  48.         }
  49.         ServerSocket serverSocket = new ServerSocket(3345);
  50.         while(true) {
  51.             Socket socket = serverSocket.accept();
  52.             System.out.println("Connected");
  53.             new Thread(new TCPRequestHandler(socket));
  54.         }
  55.     }
  56. }
  57.  
  58.  
  59. public class TCPRequestHandler implements Runnable {
  60.  
  61.     private Socket clientSocket;
  62.     private TCPServer server;
  63.  
  64.     public TCPClient(Socket clientSocket, TCPServer server) {
  65.         this.clientSocket = clientSocket;
  66.         this.server = server;
  67.     }
  68.  
  69.     @Override
  70.     public void run() {
  71.         String incomingData = this.receiveRequest();
  72.         /*
  73.             1) parse this incomingData
  74.             2) find out new agent was added to this net.
  75.             3) if yes - we should add it to agent list(line 40)
  76.             4) after this if this server is root we need to launch sync step...
  77.         */
  78.         // need to close inputStream
  79.     }
  80.    
  81.     public String receiveRequest() {
  82.         try {
  83.             DataInputStream inputStream = new DataInputStream(this.clientSocket.getInputStream());
  84.             byte[] bytes = inputStream.readAllBytes();
  85.             String incomingData = this.fromBytesToString(bytes);
  86.         } catch (IOException e) {
  87.             e.printStackTrace();
  88.         }
  89.         return incomingData;
  90.     }
  91.    
  92.     public String fromBytesToString(byte[] input) {
  93.         String result = new String(input, StandardCharsets.UTF_8);
  94.         return result;
  95.     }
  96.  
  97.  
  98.  
  99.     private void sendRequest(Agent agent, String requestToSend) {
  100.         try {
  101.             DataOutputStream outputStream = new DataOutputStream();
  102.             outputStream.writeBytes(agent.toString());
  103.             System.out.println(agent.toString());
  104.             outputStream.flush();
  105.         } catch (IOException e) {
  106.             e.printStackTrace();
  107.         }
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement