private protected override void ParsePacket(PacketId packetId, object[] args, EndPointId endPointId, SocketInfo socketInfo) { switch (packetId) { case PacketId.DircetInterfaceInitiating: DircetInterfaceInitiatingPacket initiatingPacket = new DircetInterfaceInitiatingPacket(args.ToList()); EndPoint eP; EndPointId clientId = initiatingPacket.EndPointId; lock (clients) { if (clients.TryGetValue(clientId, out eP)) { eP.UdpPort = socketInfo.Port; clients[clientId] = eP; } else { PrintWarning("UDP NOT init for: " + clientId); } } clientsBeforeSync.Remove(clientId); OnClientEventHandlerSynchronizedEvent?.Invoke(clientId); break; case PacketId.BeginSynchronization: Synchronize(endPointId, new EndPoint(socketInfo.Ip, socketInfo.Port)); break; default: base.ParsePacket(packetId, args, endPointId, socketInfo); break; } }
private protected override void ParsePacket(PacketId packetId, object[] args, EndPointId endPointId, SocketInfo socketInfo) { switch (packetId) { case PacketId.InitiateDircetInterface: InitiateDircetInterfacePacket initiateDircetInterfacePacket = new InitiateDircetInterfacePacket(args.ToList()); localEndPointId = initiateDircetInterfacePacket.ClientId; DircetInterfaceInitiatingPacket initiatingPacket = new DircetInterfaceInitiatingPacket(initiateDircetInterfacePacket.ClientId); Send(initiatingPacket, NetworkInterfaceType.UDP); hasSynchronized = true; break; default: base.ParsePacket(packetId, args, endPointId, socketInfo); break; } }