Program.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Vbdsm.Settings;
  2. using Vbdsm.SocketClients;
  3. Console.WriteLine("------------------------数据上传(模拟)程序启动------------------------");
  4. CancellationTokenSource tokenSource = new CancellationTokenSource();
  5. CancellationToken cancellationToken = tokenSource.Token;
  6. var clients = new Dictionary<string?, TpcClient>();
  7. var terminals = new List<TerminalSetting>();
  8. if (AppSetting.Instance.Terminals.Count > 0)
  9. {
  10. terminals.AddRange(AppSetting.Instance.Terminals);
  11. }
  12. foreach (var terminal in terminals)
  13. {
  14. var client = new TpcClient(terminal.CompanyId, terminal.TerminalIds);
  15. if (!clients.ContainsKey(terminal.CompanyId))
  16. {
  17. clients.Add(terminal.CompanyId, client);
  18. Task.Run(() => client.Run(), cancellationToken);
  19. }
  20. }
  21. Console.WriteLine("------------------------数据上传(模拟)启动完成------------------------");
  22. while (true)
  23. {
  24. string? cmd = Console.ReadLine();
  25. if (cmd == "exit")
  26. {
  27. break;
  28. }
  29. if (cmd != null)
  30. {
  31. if (clients.TryGetValue(cmd, out var _client))
  32. {
  33. _client.ReSend();
  34. }
  35. else
  36. {
  37. Console.WriteLine($"未能找到客户端【{cmd}】");
  38. }
  39. }
  40. }
  41. tokenSource.Cancel();