コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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;
            }
        }