Advertisement
Guest User

proksi tcp

a guest
Nov 18th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.85 KB | None | 0 0
  1. public class ProxyServer extends Thread {
  2.  
  3.     private ServerSocket serverSocket;
  4.     private final int serverPort=10100;
  5.     private Map<String,Integer> map;
  6.  
  7.     public ProxyServer() {
  8.  
  9.         try {
  10.             serverSocket=new ServerSocket(serverPort);
  11.             map=new HashMap<>();
  12.         } catch (IOException e) {
  13.             e.printStackTrace();
  14.         }
  15.  
  16.     }
  17.  
  18.     @Override
  19.     public void run() {
  20.  
  21.         System.out.println("Server is running...");
  22.         while (true){
  23.  
  24.             try {
  25.  
  26.                 Socket socket=serverSocket.accept();
  27.                 new Thread(new ServerWorker(socket,map)).start();
  28.  
  29.             } catch (IOException e) {
  30.                 e.printStackTrace();
  31.             }
  32.  
  33.         }
  34.  
  35.     }
  36.  
  37.     public static void main(String[] args) {
  38.         ProxyServer proxyServer=new ProxyServer();
  39.         proxyServer.start();
  40.     }
  41. }
  42. -----------------SERVER-WORKER----------------------
  43. public class ServerWorker extends Thread {
  44.  
  45.     private Socket socket;
  46.     private PrintWriter printWriter;
  47.     private Scanner scanner;
  48.     private Map<String,Integer> map;
  49.  
  50.     public ServerWorker(Socket socket, Map<String, Integer> map) {
  51.         this.socket = socket;
  52.         this.map = map;
  53.         try {
  54.             printWriter=new PrintWriter(socket.getOutputStream(),true);
  55.             scanner=new Scanner(socket.getInputStream());
  56.         } catch (IOException e) {
  57.             e.printStackTrace();
  58.         }
  59.     }
  60.  
  61.     @Override
  62.     public void run() {
  63.  
  64.         if(scanner.hasNextLine()){
  65.             String clientOrServer=scanner.nextLine();
  66.  
  67.             if(clientOrServer.equals("*server")){
  68.  
  69.                 System.out.println("Server accepted...");
  70.                 if(scanner.hasNextLine()){
  71.                     String urlPort=scanner.nextLine();
  72.                     String[] parts=urlPort.split(":");
  73.                     if(!map.containsKey(parts[0])){
  74.                         map.put(parts[0],Integer.parseInt(parts[1]));
  75.                         System.out.println(urlPort+" is added to map");
  76.                         printWriter.println("You are successfully added to proxy");
  77.                     }else {
  78.                         printWriter.println("url already exists!!!");
  79.                     }
  80.                 }
  81.  
  82.             }else if(clientOrServer.equals("*client")) {
  83.                 System.out.println("Client accepted...");
  84.  
  85.                 while (true){
  86.                     //send msg to client
  87.                     printWriter.println("Enter url:");
  88.  
  89.                     //receive url
  90.                     if(scanner.hasNextLine()){
  91.                         String url=scanner.nextLine();
  92.  
  93.                         if(map.containsKey(url)){
  94.  
  95.                             int port=map.get(url);
  96.                             printWriter.println(port);
  97.  
  98.                         }else {
  99.                             printWriter.println("url does not exists...");
  100.                         }
  101.                     }
  102.                 }
  103.  
  104.             }else {
  105.                 System.out.println("Something else..");
  106.             }
  107.  
  108.         }
  109.  
  110.     }
  111. }
  112. ---------------FINKI-SERVER-------------------
  113. public class FinkiServer extends Thread {
  114.  
  115.     private String url="finki.com.mk";
  116.     private ServerSocket serverSocket;
  117.     private final int serverPort=10940,proxyPort=10100;
  118.     private PrintWriter printWriter;
  119.     private Socket socket;
  120.     private Scanner scanner;
  121.  
  122.     public FinkiServer() {
  123.         try {
  124.  
  125.             serverSocket=new ServerSocket(serverPort);
  126.             socket=new Socket("127.0.0.1",proxyPort);
  127.             printWriter=new PrintWriter(socket.getOutputStream(),true);
  128.             scanner=new Scanner(socket.getInputStream());
  129.  
  130.         } catch (IOException e) {
  131.             e.printStackTrace();
  132.         }
  133.     }
  134.  
  135.     @Override
  136.     public void run() {
  137.  
  138.         //send server data to proxy server
  139.         printWriter.println("*server");
  140.         printWriter.println(url+":"+serverPort);
  141.  
  142.         //get message from server
  143.         if(scanner.hasNextLine()){
  144.             System.out.println(scanner.nextLine());
  145.         }
  146.  
  147.         while (true){
  148.             try {
  149.                 Socket socket1=serverSocket.accept();
  150.                 System.out.println("Client search for your url.");
  151.                 printWriter=new PrintWriter(socket1.getOutputStream(),true);
  152.                 printWriter.println("This is server of FINKI.");
  153.             } catch (IOException e) {
  154.                 e.printStackTrace();
  155.             }
  156.         }
  157.  
  158.     }
  159.  
  160.     public static void main(String[] args) {
  161.         FinkiServer finkiServer=new FinkiServer();
  162.         finkiServer.start();
  163.     }
  164. }
  165. -----------------CLIENT--------------------------
  166. public class Client extends Thread {
  167.  
  168.     private Socket socket;
  169.     private final int proxyPort=10100;
  170.     private PrintWriter printWriter;
  171.     private BufferedReader reader;
  172.     private Scanner scanner;
  173.  
  174.     public Client() {
  175.  
  176.         try {
  177.             socket=new Socket("127.0.0.1",proxyPort);
  178.             printWriter=new PrintWriter(socket.getOutputStream(),true);
  179.             reader=new BufferedReader(new InputStreamReader(System.in));
  180.             scanner=new Scanner(socket.getInputStream());
  181.         } catch (IOException e) {
  182.             e.printStackTrace();
  183.         }
  184.  
  185.     }
  186.  
  187.     @Override
  188.     public void run() {
  189.  
  190.         //new Thread(new ClientListener(socket)).start(); //start listening
  191.  
  192.         try {
  193.  
  194.             printWriter.println("*client");
  195.  
  196.             while (true){
  197.                 //send url to proxy
  198.                 if(scanner.hasNextLine()){
  199.                     String msg=scanner.nextLine();
  200.                     System.out.println(msg);
  201.                     String url=reader.readLine();
  202.                     printWriter.println(url);
  203.                 }
  204.  
  205.                 //receive port of chosen url from proxy
  206.                 if(scanner.hasNextLine()){
  207.                     String port=scanner.nextLine();
  208.                     if(port.equals("url does not exists...")){
  209.                         System.out.println(port);
  210.                     }else {
  211.                         int portInt=Integer.parseInt(port);
  212.                         Socket socket1=new Socket("127.0.0.1",portInt);
  213.                         Scanner readDataFromChosenServer=new Scanner(socket1.getInputStream());
  214.                         if(readDataFromChosenServer.hasNextLine()){
  215.                             System.out.println(readDataFromChosenServer.nextLine());
  216.                         }
  217.                     }
  218.  
  219.                 }
  220.             }
  221.  
  222.         } catch (IOException e) {
  223.             e.printStackTrace();
  224.         }
  225.  
  226.     }
  227.  
  228.     public static void main(String[] args) {
  229.         Client client=new Client();
  230.         client.start();
  231.     }
  232. }
  233. ----------------CLIENT-LISTENER--------------
  234. public class Client extends Thread {
  235.  
  236.     private Socket socket;
  237.     private final int proxyPort=10100;
  238.     private PrintWriter printWriter;
  239.     private BufferedReader reader;
  240.     private Scanner scanner;
  241.  
  242.     public Client() {
  243.  
  244.         try {
  245.             socket=new Socket("127.0.0.1",proxyPort);
  246.             printWriter=new PrintWriter(socket.getOutputStream(),true);
  247.             reader=new BufferedReader(new InputStreamReader(System.in));
  248.             scanner=new Scanner(socket.getInputStream());
  249.         } catch (IOException e) {
  250.             e.printStackTrace();
  251.         }
  252.  
  253.     }
  254.  
  255.     @Override
  256.     public void run() {
  257.  
  258.         //new Thread(new ClientListener(socket)).start(); //start listening
  259.  
  260.         try {
  261.  
  262.             printWriter.println("*client");
  263.  
  264.             while (true){
  265.                 //send url to proxy
  266.                 if(scanner.hasNextLine()){
  267.                     String msg=scanner.nextLine();
  268.                     System.out.println(msg);
  269.                     String url=reader.readLine();
  270.                     printWriter.println(url);
  271.                 }
  272.  
  273.                 //receive port of chosen url from proxy
  274.                 if(scanner.hasNextLine()){
  275.                     String port=scanner.nextLine();
  276.                     if(port.equals("url does not exists...")){
  277.                         System.out.println(port);
  278.                     }else {
  279.                         int portInt=Integer.parseInt(port);
  280.                         Socket socket1=new Socket("127.0.0.1",portInt);
  281.                         Scanner readDataFromChosenServer=new Scanner(socket1.getInputStream());
  282.                         if(readDataFromChosenServer.hasNextLine()){
  283.                             System.out.println(readDataFromChosenServer.nextLine());
  284.                         }
  285.                     }
  286.  
  287.                 }
  288.             }
  289.  
  290.         } catch (IOException e) {
  291.             e.printStackTrace();
  292.         }
  293.  
  294.     }
  295.  
  296.     public static void main(String[] args) {
  297.         Client client=new Client();
  298.         client.start();
  299.     }
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement