public RemoteBattle(NetworkManager.PType protocolType, int port) { NetworkManager.AddPacketTypes(); NetworkManager.CreateServer(NETWORK_NAME, protocolType, 10); NetworkManager.AddServerEventHandler(NETWORK_NAME, this.ProcessServerEvent); NetworkManager.StartServer(NETWORK_NAME, port); Logger.Log($"Server started, listening port: {port}"); }
public Lockstep(NetworkManager.PType protocolType, string ip, int port) { this._remoteBattle = new RemoteBattle(protocolType, port); Thread.Sleep(100); this._localBattle = new LocalBattle(protocolType, ip, port); this.StartLoopCycle(1); }
public static NetModule Initialize(NetworkManager.PType protocolType) { if (_instance != null) { return(_instance); } _instance = new NetModule(protocolType); return(_instance); }
private NetModule(NetworkManager.PType protocolType) { if (protocolType == NetworkManager.PType.Kcp) { NetworkManager.SetupKCP(); } NetworkManager.CreateClient(NETWORK_NAME, protocolType); NetworkManager.AddClientEventHandler(NETWORK_NAME, this.ProcessClientEvent); }
static int Start(string[] args) { AssemblyName[] assemblies = Assembly.GetEntryAssembly().GetReferencedAssemblies(); foreach (AssemblyName assembly in assemblies) { Assembly.Load(assembly); } LoggerProxy.Init(Resources.log4net_config); CommandArgs commandArg = CommandLine.Parse(args); Dictionary <string, string> argPairs = commandArg.argPairs; int maxClient; if (!argPairs.ContainsKey("c")) { maxClient = 10; } else { if (!int.TryParse(argPairs["c"], out maxClient)) { Logger.Log("最大连接数解析错误"); return(1); } } if (!argPairs.ContainsKey("p")) { Logger.Log("没有指定端口"); return(1); } if (!int.TryParse(argPairs["p"], out int _port)) { Logger.Log("端口解析错误"); return(1); } int useUDP; if (!argPairs.ContainsKey("t")) { useUDP = 0; } else { if (!int.TryParse(argPairs["t"], out useUDP)) { Logger.Log("协议类型解析错误"); return(1); } } if (!argPairs.ContainsKey("d")) { Logger.Log("无效的配置文件路径"); return(1); } string defFile = argPairs["d"]; string json; try { json = File.ReadAllText(defFile); } catch (Exception e) { Logger.Log(e); return(1); } Defs.Init(json); _handlerCenter = new HandlerCenter(); NetworkManager.PType protocolType = useUDP > 0 ? NetworkManager.PType.Kcp : NetworkManager.PType.Tcp; if (protocolType == NetworkManager.PType.Kcp) { NetworkManager.SetupKCP(); } NetworkManager.AddPacketTypes(); NetworkManager.CreateServer(NETWORK_NAME, protocolType, maxClient); NetworkManager.AddServerEventHandler(NETWORK_NAME, ProcessServerEvent); NetworkManager.StartServer(NETWORK_NAME, _port); Logger.Log($"Server started, listening port: {_port}"); Thread inputThread = new Thread(InputWorker); inputThread.IsBackground = true; inputThread.Start(); System.Diagnostics.Stopwatch sp = new System.Diagnostics.Stopwatch(); sp.Start(); long lastElapsed = 0; while (!_disposed) { long elapsed = sp.ElapsedMilliseconds; long dt = elapsed - lastElapsed; NetworkManager.Update(dt); lastElapsed = elapsed; ProcessInput(); Thread.Sleep(10); } sp.Stop(); inputThread.Join(); LoggerProxy.Dispose(); return(0); }
public LocalBattle(NetworkManager.PType protocolType, string ip, int port) { NetworkManager.CreateClient(NETWORK_NAME, protocolType); NetworkManager.AddClientEventHandler(NETWORK_NAME, this.ProcessClientEvent); NetworkManager.Connect(NETWORK_NAME, ip, port); }