Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- terminal window 1: 0.0.0.0 10000 working has ip 192.168.0.100
- terminal window 2: 192.168.0.100 10001 working has ip 192.168.0.101
- server client
- |listen
- |listen
- |listen
- |listen
- |listen
- |listen
- |listen
- |listen
- | sending request to server
- |Socket socket = serverSocket.accept();
- |new Thread(new TCPRequestHandler(socket));
- |listen | new thread -> processing request from client
- |listen | new thread -> sending response to client
- |
- | sending request to server
- | sending request to server
- public class Agent {
- String ipAddress;
- int port;
- @Override
- public String toString() {
- return this.ipAddress + ":" + String.valueOf(this.port);
- }
- }
- public class TCPServer {
- Bool isRoot = false;
- List<Agent> agentList = new Array...;
- public void main(String argv[]) throws Exception {
- if(argv[0].equals("0.0.0.0")) {
- this.isRoot = true;
- } else {
- ...
- }
- ServerSocket serverSocket = new ServerSocket(3345);
- while(true) {
- Socket socket = serverSocket.accept();
- System.out.println("Connected");
- new Thread(new TCPRequestHandler(socket));
- }
- }
- }
- public class TCPRequestHandler implements Runnable {
- private Socket clientSocket;
- private TCPServer server;
- public TCPClient(Socket clientSocket, TCPServer server) {
- this.clientSocket = clientSocket;
- this.server = server;
- }
- @Override
- public void run() {
- String incomingData = this.receiveRequest();
- /*
- 1) parse this incomingData
- 2) find out new agent was added to this net.
- 3) if yes - we should add it to agent list(line 40)
- 4) after this if this server is root we need to launch sync step...
- */
- // need to close inputStream
- }
- public String receiveRequest() {
- try {
- DataInputStream inputStream = new DataInputStream(this.clientSocket.getInputStream());
- byte[] bytes = inputStream.readAllBytes();
- String incomingData = this.fromBytesToString(bytes);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return incomingData;
- }
- public String fromBytesToString(byte[] input) {
- String result = new String(input, StandardCharsets.UTF_8);
- return result;
- }
- private void sendRequest(Agent agent, String requestToSend) {
- try {
- DataOutputStream outputStream = new DataOutputStream();
- outputStream.writeBytes(agent.toString());
- System.out.println(agent.toString());
- outputStream.flush();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement