Добрый день, делаю клиент-серверное приложение
Клиент запускает программу и вывод команд перенаправляется на сервер через socket.
Process run = new Process();
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
DataReceivedEventHandler Fun= (o, e) => {
StringBuilder strOutput = new StringBuilder();
if (!String.IsNullOrEmpty(e.Data))
{
try
{
strOutput.Append('\n'+e.Data);
}
catch (Exception e) {
socket.Send(Encoding.UTF8.GetBytes(e_aplication.ToString());
}
}
else {
socket.Send(Encoding.UTF8.GetBytes(strOutput.ToString()));
strOutput.Clear();
}
};
p.OutputDataReceived += Fun;
p.Start();
p.BeginOutputReadLine();
Так вот данные успешно передаются, но иногда возникают ситуации что DataReceivedEventHandler вызывается несколько раз, и соответственно несколько раз вызывается socket.Send(); например если выполнить команду DIR Соответственно суть вопроса, как собрать все передаваемые данные в едино и потом отослать socket.Send(fulldata) ? Заранее извиняюсь за глупый вопрос, только начал изучать C#.