DebugSocket.hx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package cpp.vm;
  2. import haxe.Stack;
  3. import cpp.vm.DebugBase;
  4. import cpp.net.Socket;
  5. class DebugSocket extends DebugStdio
  6. {
  7. var socket:Socket;
  8. var socketOut:haxe.io.Output;
  9. var host:String;
  10. var port:Int;
  11. public function new(inHost:String, inPort:Int, inCreateStooped:Bool=false)
  12. {
  13. host = inHost;
  14. port = inPort;
  15. super(inCreateStooped);
  16. }
  17. override function init()
  18. {
  19. try
  20. {
  21. socket = new Socket();
  22. trace("Connect " + host + ":" + port + "...");
  23. try
  24. {
  25. socket.connect( new cpp.net.Host(host), port );
  26. } catch (e:Dynamic)
  27. {
  28. trace("Could not CONNECT!");
  29. socket = null;
  30. }
  31. trace("connected.");
  32. if (socket!=null)
  33. {
  34. input = socket.input;
  35. socketOut = socket.output;
  36. }
  37. }
  38. catch(e:Dynamic)
  39. {
  40. if (socket!=null)
  41. socket.close();
  42. socket = null;
  43. trace("Socket error:" + e);
  44. }
  45. stillDebugging = socket!=null;
  46. }
  47. override function getNextCommand() : String
  48. {
  49. if (input==null)
  50. return "bye";
  51. try
  52. {
  53. return input.readLine();
  54. }
  55. catch(e:Dynamic)
  56. {
  57. trace("getNextCommand - socket closed");
  58. input.close();
  59. input = null;
  60. }
  61. return "bye";
  62. }
  63. override function sendOutput(inString:String)
  64. {
  65. // TODO
  66. //Sys.println(inString);
  67. }
  68. }