A semantic search engine for source code https://bitshift.benkurtovic.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 rivejä
1.6 KiB

  1. package com.bitshift.parsing.parsers;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.io.PrintWriter;
  5. import java.io.IOException;
  6. import java.net.Socket;
  7. import com.bitshift.parsing.symbols.Symbols;
  8. import com.bitshift.parsing.utils.PackableMemory;
  9. public abstract class Parser implements Runnable {
  10. protected Socket clientSocket;
  11. public Parser(Socket clientSocket) {
  12. this.clientSocket = clientSocket;
  13. }
  14. protected String readFromClient() {
  15. String fromClient = "";
  16. try {
  17. BufferedReader clientReader = new BufferedReader(
  18. new InputStreamReader(this.clientSocket.getInputStream()));
  19. int bytes = Integer.parseInt(clientReader.readLine());
  20. StringBuilder builder = new StringBuilder();
  21. int i = 0;
  22. while(i < bytes) {
  23. char aux = (char)clientReader.read();
  24. builder.append(aux);
  25. i++;
  26. }
  27. fromClient = builder.toString();
  28. } catch (IOException ex) {
  29. }
  30. return fromClient;
  31. }
  32. protected void writeToClient(String toClient) {
  33. try {
  34. PrintWriter clientWriter = new PrintWriter(
  35. this.clientSocket.getOutputStream(), true);
  36. PackableMemory mem = new PackableMemory(toClient.length());
  37. String dataSize = new String(mem.mem);
  38. clientWriter.println(dataSize + toClient);
  39. } catch (IOException ex) {
  40. }
  41. }
  42. protected abstract Symbols genSymbols();
  43. public abstract void run();
  44. }