private void StartListening() { IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Loopback, 0); Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); List <string> promptCmdLines = new List <string> (); try { listener.Bind(localEndPoint); int port = ((IPEndPoint)listener.LocalEndPoint).Port; listener.Listen(100); promptCmdLines.Add(ExcelAppleScript.CreateMacroWithArguments("SetMekkoSenderPort", port.ToString())); promptCmdLines.Add(promptCmd); string [] commands = promptCmdLines.ToArray(); DispatchQueue.MainQueue.DispatchAsync(() => { ExcelAppleScript.Run(commands); }); while (waiting) { allDone.Reset(); listener.BeginAccept(new AsyncCallback(ControlAcceptCallback), listener); allDone.WaitOne(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public ExcelDataSender(string macroName, params string [] Arguments) { waiting = true; allDone = null; byteData = null; promptCmd = ExcelAppleScript.CreateMacroWithArguments(macroName, Arguments); }