private void Form1_FormClosing(Object sender, FormClosingEventArgs e) { PServer1.StopServer(); PServerUtils.StopServer(); statusTimer.Stop(); if (timer_exec)//FIXME properly invalidate the timer. { e.Cancel = true; return; } if (log_to_file) { log_file.Close(); } }
//--- Callbacks --- //This is the pipe the client/server use to exchange information such as settings //Requests are clear ascii text delimited by "\n" public void pipe_received_data_utils(String str) { str = Regex.Replace(str, @"[^\u0001-\u007F]", string.Empty); //Remove non-ascii characters. reqBuffer += str; int index = -1; while ((index = reqBuffer.IndexOf("\n")) >= 0) { str = reqBuffer.Substring(0, index); reqBuffer = reqBuffer.Substring(index + 1); Invoke(new MethodInvoker(() => { logTextBox.AppendText("Server received request: " + str + Environment.NewLine); if ("PATH" == str) { PServerUtils.SendMessage(serverDirPath + "\n", PServerUtils.clientse); } else if ("LUAMAIN" == str) {//deprecated PServerUtils.SendMessage(serverDirPath + Path.DirectorySeparatorChar + "data" + Path.DirectorySeparatorChar + "lua" + Path.DirectorySeparatorChar + "autorun.lua\n", PServerUtils.clientse); } else if ("LOG" == str) { PServerUtils.SendMessage(serverDirPath + Path.DirectorySeparatorChar + "data" + Path.DirectorySeparatorChar + "log" + Path.DirectorySeparatorChar + "\n", PServerUtils.clientse); } else if ("LAYOUT" == str) { PServerUtils.SendMessage(serverDirPath + Path.DirectorySeparatorChar + "data" + Path.DirectorySeparatorChar + "layout" + Path.DirectorySeparatorChar + "\n", PServerUtils.clientse); } else { logTextBox.AppendText("Server received unknown request: " + str + Environment.NewLine); } })); } }