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
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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("0.0.0.0", 8888, 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. }
  41. catch (Exception ex)
  42. {
  43. Console.WriteLine(ex.ToString());
  44. }
  45. return 0;
  46. }
  47. }
  48. }