Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.*;
  4.  
  5. public class P4A {
  6.  
  7. public static HashMap<String, String> map = new HashMap<String, String>();
  8. public static void main(String[] args) {
  9. Socket connectionSocket = null;
  10. BufferedReader in = null;
  11. PrintStream printStream = null;
  12. System.out.println("Server started.");
  13. while(true) {
  14. try (ServerSocket serverSocket = new ServerSocket(7777)) {
  15. System.out.println("Socket opened.");
  16. connectionSocket = serverSocket.accept();
  17. System.out.println("Client connected.");
  18. in = new BufferedReader( new InputStreamReader(connectionSocket.getInputStream()));
  19. printStream = new PrintStream(connectionSocket.getOutputStream(), true);
  20. String request = "";
  21. while (!request.equals("EXIT")) {
  22. System.out.println("Reading...");
  23. request = in.readLine();
  24. System.out.println("Request: " + request);
  25. if(request.length()<3) {
  26. System.out.println("ERR: Unknown Command!");
  27. printStream.println("ERR: Unknown Command!");
  28. continue;
  29. }
  30.  
  31. switch(request.substring(0,3)) {
  32. case "GET":
  33. if(request.length() < 5 || (args = request.substring(4).split("\\s")).length != 1) {
  34. printStream.println("ERR: Invalid number of arguments (1)!");
  35. System.out.println("ERR: Invalid number of arguments (1)!");
  36. break;
  37. }
  38. if(!map.containsKey(args[0])) {
  39. printStream.println("ERR: Unknown Key!");
  40. System.out.println("ERR: Unknown Key!");
  41. break;
  42. }
  43. printStream.println("RES: " + map.get(args[0]));
  44. System.out.println("RES: " + map.get(args[0]));
  45. break;
  46. case "PUT":
  47. if(request.length() < 5 || (args = request.substring(4).split("\\s")).length != 2) {
  48. printStream.println("ERR: Invalid number of arguments (2)!");
  49. System.out.println("ERR: Invalid number of arguments (2)!");
  50. break;
  51. }
  52. map.put(args[0], args[1]);
  53. printStream.println("RES: OK");
  54. System.out.println("RES: OK");
  55. break;
  56. default:
  57. if(request.equals("EXIT")) {
  58. continue;
  59. }
  60. System.out.println("ERR: Unknown Command!");
  61. printStream.println("ERR: Unknown Command!");
  62. break;
  63. }
  64.  
  65. }
  66. printStream.println("RES: BYE!");
  67. printStream.close();
  68. in.close();
  69. connectionSocket.close();
  70. serverSocket.close();
  71. } catch (Exception e) {
  72. System.err.println(e.getMessage());
  73. printStream.println("ERR: Unknown Error!");
  74. }
  75. }
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement