Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.lang.reflect.Array;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- public class DispatcherApp extends Thread {
- private ServerSocket dispatcherServerSocket;
- private Socket dispatcherSocket;
- private PrintWriter outToRemoteSocket;
- private BufferedReader inFromRemoteSocket;
- private ArrayList<Courier> couriers;
- // private ArrayList<Client> clients;
- private String messageToProcess;
- public DispatcherApp(int port) throws IOException{
- dispatcherServerSocket = new ServerSocket(port);
- couriers = new ArrayList<>();
- }
- public static void main(String[] args) {
- int port = 50001;
- try {
- Thread t = new DispatcherApp(port);
- t.start();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void run() {
- while(true) {
- try{
- System.out.println("Waiting for client on port " + dispatcherServerSocket.getLocalPort() + "...");
- dispatcherSocket = dispatcherServerSocket.accept();
- System.out.println("Just connected to " + dispatcherSocket.getRemoteSocketAddress());
- inFromRemoteSocket = new BufferedReader(new InputStreamReader(dispatcherSocket.getInputStream()));
- messageToProcess = inFromRemoteSocket.readLine();
- if(wasTheMessageFromCourier(messageToProcess)) {
- processCourierInfo(messageToProcess);
- } else {
- }
- dispatcherSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private processMessage(String message) {
- String []tempString = message.split(":");
- if(wasTheMessageFromCourier(message)) {
- switch(tempString[1]) {
- case "add":
- processCourierInfo(message);
- break;
- case "ready":
- setReadyCourier(message);
- break;
- case ""
- }
- } else {
- }
- }
- public boolean setReadyCourier(String message) {
- String []tempString = message.split(":");
- int id = Integer.parseInt(tempString[2]);
- for(Courier courier : couriers) {
- if(courier.getId() == id) {
- courier.setReady(true);
- return true;
- }
- }
- return false;
- }
- public boolean wasTheMessageFromCourier(String message) {
- String []tempString = message.split(":");
- if(tempString[0].toLowerCase().equals("courier"))
- return true;
- else
- return false;
- }
- public boolean processCourierInfo(String message) {
- String []tempString = message.split(":");
- String address;
- String category;
- int id;
- try {
- address = tempString[2];
- category = tempString[3];
- id = Integer.parseInt(tempString[4]);
- } catch (IndexOutOfBoundsException e) {
- e.printStackTrace();
- return false;
- }
- Courier tempCourier = new Courier(address, category, id);
- couriers.add(tempCourier);
- return true;
- }
- public
- //
- // private ServerSocket dispatcherServerSocket;
- // private Socket courierSocket;
- // private PrintWriter outToRemoteSocket;
- // private BufferedReader inFromRemoteSocket;
- //
- // private ArrayList<Courier> couriers;
- //
- // private String messageFromCourier;
- //
- //
- // public DispatcherApp(int port) throws IOException {
- // dispatcherServerSocket = new ServerSocket(port);
- // couriers = new ArrayList<>();
- // }
- //
- // @Override
- // public void run() {
- // while (true) {
- // try {
- // System.out.println("Waiting for client on port " + dispatcherServerSocket.getLocalPort() + " ...");
- // courierSocket = dispatcherServerSocket.accept();
- //
- // System.out.println("Just connected to " + courierSocket.getRemoteSocketAddress());
- // inFromRemoteSocket = new BufferedReader(new InputStreamReader(courierSocket.getInputStream()));
- //
- //
- // messageFromCourier = inFromRemoteSocket.readLine();
- // couriers.add(new Courier(courierSocket.getRemoteSocketAddress().toString(), messageFromCourier.split(" ")[0], Integer.parseInt(messageFromCourier.split(" ")[1])));
- //
- //
- // outToRemoteSocket = new PrintWriter(courierSocket.getOutputStream(), true);
- // outToRemoteSocket.println("Thank you for connecting to " + courierSocket.getLocalAddress() + "\nGoodbye!");
- // System.out.println(couriers.get(0).getId() + couriers.get(0).getAddress() + couriers.get(0).getCategory());
- // courierSocket.close();
- //
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
- // }
- // }
- //
- // private void initializeConnectedCourier(String message) {
- // String[] splitMessage = message.split(" ");
- // String category = splitMessage[1];
- // int id = Integer.parseInt(splitMessage[2]);
- //
- // }
- //
- // public static void main(String[] args) {
- // int port = 50001;
- // try {
- // Thread t = new DispatcherApp(port);
- // t.start();
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
- //
- // DispatcherView view = new DispatcherView();
- // }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement