You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Program.cs 1.9 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Grpc.Core;
  2. using Protobuf;
  3. using System.Threading;
  4. using Timothy.FrameRateTask;
  5. using System;
  6. using System.Net.Http.Headers;
  7. using CommandLine;
  8. namespace Server
  9. {
  10. public class Program
  11. {
  12. static int Main(string[] args)
  13. {
  14. foreach (var arg in args)
  15. {
  16. Console.Write($"{arg} ");
  17. }
  18. Console.WriteLine();
  19. ArgumentOptions? options = null;
  20. _ = Parser.Default.ParseArguments<ArgumentOptions>(args).WithParsed(o => { options = o; });
  21. if (options == null)
  22. {
  23. Console.WriteLine("Argument parsing failed!");
  24. return 1;
  25. }
  26. Console.WriteLine("Server begins to run: " + options.ServerPort.ToString());
  27. try
  28. {
  29. GameServer? gameServer = new(options);
  30. Grpc.Core.Server server = new Grpc.Core.Server(new[] { new ChannelOption(ChannelOptions.SoReuseport, 0) })
  31. {
  32. Services = { AvailableService.BindService(gameServer) },
  33. Ports = { new ServerPort(options.ServerIP, options.ServerPort, ServerCredentials.Insecure) }
  34. };
  35. server.Start();
  36. Console.WriteLine("Server begins to listen!");
  37. gameServer.WaitForEnd();
  38. Console.WriteLine("Server end!");
  39. server.ShutdownAsync().Wait();
  40. Thread.Sleep(50);
  41. Console.WriteLine("");
  42. Console.WriteLine("=================== Final Score ====================");
  43. Console.WriteLine($"Studnet: {gameServer.GetScore()[0]}");
  44. Console.WriteLine($"Tricker: {gameServer.GetScore()[1]}");
  45. }
  46. catch (Exception ex)
  47. {
  48. Console.WriteLine(ex.ToString());
  49. }
  50. return 0;
  51. }
  52. }
  53. }