Beispiel #1
0
        public override void OnProcess(FT_Session session, BitStream bsIn, AddressOrGUID systemIdentifier)
        {
            Log.Debug("FT_Node_Process_Test1.OnProcess :");
            FT_UnitData unitData = new FT_UnitData();

            unitData.Serialize(false, bsIn);
        }
Beispiel #2
0
        static void _SendUnitData()
        {
            FT_UnitData data = new FT_UnitData();

            BitStream writeBitStream = new BitStream();

            writeBitStream.Write((byte)FT_MessageTypes.ID_SERVER_LOGIN);
            writeBitStream.Write((byte)FT_MessageTypesNode.NODE_FT_TEST1);
            data.Serialize(true, writeBitStream);
            client.Send(writeBitStream, (char)0);
        }
Beispiel #3
0
        static void ProcessMessage(RakPeerInterface peer, RakNet.Packet packet)
        {
            if (packet != null)
            {
                if (packet.data[0] == (byte)(FT_MessageTypes.ID_SERVER_LOGIN))
                {
                    BitStream receiveBitStream = new BitStream();
                    receiveBitStream.Write(packet.data, packet.length);
                    receiveBitStream.IgnoreBytes(2);
                    FT_UnitData data = new FT_UnitData();
                    data.Serialize(false, receiveBitStream);
                    Log.Debug(" data.nGrid_x: " + data.nGrid_x);

                    BitStream writeBitStream = new BitStream();
                    writeBitStream.Write((byte)FT_MessageTypes.ID_SERVER_LOGIN);
                    writeBitStream.Write((byte)FT_MessageTypesNode.NODE_FT_TEST1);
                    data.Serialize(true, writeBitStream);
                    uint sendLength = peer.Send(writeBitStream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, packet.systemAddress, false);
                    Log.Debug("SendLength = " + sendLength);
                }
            }
        }
Beispiel #4
0
        public void ProcessMessage()
        {
            while (!_bStop)
            {
                _packet = _peer.Receive();
                while (_packet != null)
                {
                    byte messageType = _packet.data[0];
                    if (messageType < (byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM)
                    {
                        DefaultMessageIDTypes idType = (DefaultMessageIDTypes)messageType;
                        switch (idType)
                        {
                        case DefaultMessageIDTypes.ID_CONNECTION_REQUEST_ACCEPTED:
                            Log.Info("In a client/server environment, our connection request to the server has been accepted.\n");
                            break;

                        case DefaultMessageIDTypes.ID_CONNECTION_ATTEMPT_FAILED:
                            Log.Info("Sent to the player when a connection request cannot be completed due to inability to connect.\n ");
                            break;

                        case DefaultMessageIDTypes.ID_ALREADY_CONNECTED:
                            Log.Info("Sent a connect request to a system we are currently connected to.\n ");
                            break;

                        case DefaultMessageIDTypes.ID_NEW_INCOMING_CONNECTION:
                            Log.Info("A remote system has successfully connected.\n");
                            break;

                        case DefaultMessageIDTypes.ID_DISCONNECTION_NOTIFICATION:
                            Log.Info(" A remote system has disconnected. \n");
                            break;

                        case DefaultMessageIDTypes.ID_CONNECTION_LOST:
                            Log.Info(" The connection to that system has been closed. \n");
                            break;
                        }
                    }
                    else
                    {
                        if (messageType == (byte)FT_MessageTypes.ID_SERVER_LOGIN)
                        {
                            byte             dataType = _packet.data[1];
                            RakNet.BitStream bsIn     = new RakNet.BitStream(_packet.data, _packet.length, false);
                            bsIn.IgnoreBytes(2);
                            FT_UnitData unitData = new FT_UnitData();
                            unitData.session.Serialize(false, bsIn);
                            unitData.Serialize(false, bsIn);
                            Log.Info("" + unitData.sInfo.C_String());

                            byte serverLogin = (byte)RakNet.FT_MessageTypes.ID_SERVER_LOGIN;

                            RakNet.BitStream bsOut = new RakNet.BitStream();
                            bsOut.Serialize(true, ref serverLogin);
                            bsOut.Serialize(true, ref dataType);
                            unitData.session.Serialize(true, bsOut);
                            unitData.Serialize(true, bsOut);

                            uint sendLength = _peer.Send(bsOut,
                                                         RakNet.PacketPriority.IMMEDIATE_PRIORITY,
                                                         RakNet.PacketReliability.RELIABLE_ORDERED, (char)0,
                                                         _packet.systemAddress,
                                                         false);

                            Log.Info("SendLength:" + sendLength);
                        }
                    }
                    Log.Info(string.Format("Receive Data. [0] = {0}, Length = {1}", _packet.data[0], _packet.data.Length));
                    _peer.DeallocatePacket(_packet);
                    _packet = _peer.Receive();
                }
                System.Threading.Thread.Sleep(30);
            }
        }