/packages/services/Proxy/src/com/android/proxyhandler/SocketConnect.java

https://github.com/aizuzi/platform_frameworks_base · Java · 59 lines · 46 code · 10 blank · 3 comment · 2 complexity · 948d680c753100e3c45404b070f070cc MD5 · raw file

  1. package com.android.proxyhandler;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.net.Socket;
  6. /**
  7. * @hide
  8. */
  9. public class SocketConnect extends Thread {
  10. private InputStream from;
  11. private OutputStream to;
  12. public SocketConnect(Socket from, Socket to) throws IOException {
  13. this.from = from.getInputStream();
  14. this.to = to.getOutputStream();
  15. start();
  16. }
  17. @Override
  18. public void run() {
  19. final byte[] buffer = new byte[512];
  20. try {
  21. while (true) {
  22. int r = from.read(buffer);
  23. if (r < 0) {
  24. break;
  25. }
  26. to.write(buffer, 0, r);
  27. }
  28. from.close();
  29. to.close();
  30. } catch (IOException io) {
  31. }
  32. }
  33. public static void connect(Socket first, Socket second) {
  34. try {
  35. SocketConnect sc1 = new SocketConnect(first, second);
  36. SocketConnect sc2 = new SocketConnect(second, first);
  37. try {
  38. sc1.join();
  39. } catch (InterruptedException e) {
  40. }
  41. try {
  42. sc2.join();
  43. } catch (InterruptedException e) {
  44. }
  45. } catch (IOException e) {
  46. e.printStackTrace();
  47. }
  48. }
  49. }