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.6 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. Services = { AvailableService.BindService(gameServer) },
  32. Ports = { new ServerPort("0.0.0.0", 8888, ServerCredentials.Insecure) }
  33. };
  34. server.Start();
  35. Console.WriteLine("Server begins to listen!");
  36. gameServer.WaitForEnd();
  37. Console.WriteLine("Server end!");
  38. server.ShutdownAsync().Wait();
  39. }
  40. catch (Exception ex)
  41. {
  42. Console.WriteLine(ex.ToString());
  43. }
  44. return 0;
  45. }
  46. }
  47. }