public void Process() { name = "aaa"; NetworkStream stream = null; bool isExit = false; try { stream = TcpClient.GetStream(); byte[] data = new byte[64]; // буфер для получаемых данных while (true) { // получаем сообщение StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = stream.Read(data, 0, data.Length); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (stream.DataAvailable); string json = builder.ToString(); if (string.IsNullOrEmpty(json)) { break; } Package package = Package.FromJson(json); switch (package.Operation) { case (int)OperationManager.Connect: { name = package.Name; LogPrint(package.DateTime, "вход в систему"); break; } case (int)OperationManager.GetUsers: { GetUsers(package); LogPrint(package.DateTime, $"получение списка сотрудников"); break; } case (int)OperationManager.GetTeams: { GetTeams(package); LogPrint(package.DateTime, $"получение списка команд"); break; } case (int)OperationManager.GetUserInfo: { LogPrint(package.DateTime, $"получение лога сотрудника id={package.Data.Split('@')[0]}"); GetUserInfo(package); break; } case (int)OperationManager.Exit: { LogPrint(DateTime.Now, "выход из системы"); isExit = true; break; } case (int)OperationManager.GetLogsTeam: { LogPrint(package.DateTime, $"получение лога команды id={package.Data.Split('@')[0]}"); GetLogsTeam(package); break; } } if (isExit) { break; } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (!isExit) { LogPrint(DateTime.Now, "выход из системы (отключение)"); } if (stream != null) { stream.Close(); } if (TcpClient != null) { TcpClient.Close(); } } }
public void Process() { name = "aaa"; NetworkStream stream = null; bool isExit = false; try { stream = TcpClient.GetStream(); byte[] data = new byte[64]; // буфер для получаемых данных while (true) { // получаем сообщение StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = stream.Read(data, 0, data.Length); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (stream.DataAvailable); string json = builder.ToString(); if (string.IsNullOrEmpty(json)) { break; } Package package = Package.FromJson(json); AddInfoToDB(package); switch (package.Operation) { case (int)OperationInvoke.Connect: { name = package.Name; LogPrint(package.DateTime, "вход в систему"); break; } case (int)OperationInvoke.ChangeProcess: { LogPrint(package.DateTime, $"смена процесса {package.Data}"); break; } case (int)OperationInvoke.Exit: { LogPrint(DateTime.Now, "выход из системы"); isExit = true; break; } } if (isExit) { break; } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (!isExit) { LogPrint(DateTime.Now, "выход из системы (отключение)"); } if (stream != null) { stream.Close(); } if (TcpClient != null) { TcpClient.Close(); } } }