Пример #1
0
    public IP2PAddress ReadPeerAddress()
    {
        ETransporLayerType layerType = P2PTransportLayer.Instance.GetLayerType();
        IP2PAddress        result;

        if (layerType != ETransporLayerType.UNet)
        {
            if (layerType != ETransporLayerType.Steam)
            {
                throw new NotImplementedException();
            }
            result = new P2PAddressSteam
            {
                m_SteamID = new CSteamID(this.ReadUInt64())
            };
        }
        else
        {
            result = new P2PAddressUnet
            {
                m_IP   = this.ReadString(),
                m_Port = this.ReadInt32()
            };
        }
        return(result);
    }
Пример #2
0
 public static IP2PAddress CreateAddress(ETransporLayerType transport_layer)
 {
     if (transport_layer == ETransporLayerType.UNet)
     {
         return(new P2PAddressUnet());
     }
     if (transport_layer != ETransporLayerType.Steam)
     {
         throw new NotImplementedException();
     }
     return(new P2PAddressSteam());
 }
Пример #3
0
 public static void Create(ETransporLayerType type)
 {
     DebugUtils.Assert(P2PTransportLayer.Instance == null || P2PTransportLayer.Instance.GetLayerType() == type, true);
     if (P2PTransportLayer.Instance != null)
     {
         return;
     }
     if (type == ETransporLayerType.UNet)
     {
         P2PTransportLayer.s_Instance = new TransportLayerUNet();
         return;
     }
     if (type != ETransporLayerType.Steam)
     {
         throw new NotImplementedException();
     }
     P2PTransportLayer.s_Instance = new TransportLayerSteam();
 }
Пример #4
0
    public void Write(IP2PAddress addr)
    {
        ETransporLayerType layerType = P2PTransportLayer.Instance.GetLayerType();

        if (layerType == ETransporLayerType.UNet)
        {
            P2PAddressUnet p2PAddressUnet = addr as P2PAddressUnet;
            this.Write(p2PAddressUnet.m_IP);
            this.Write(p2PAddressUnet.m_Port);
            return;
        }
        if (layerType != ETransporLayerType.Steam)
        {
            throw new NotImplementedException();
        }
        P2PAddressSteam p2PAddressSteam = addr as P2PAddressSteam;

        this.Write(p2PAddressSteam.m_SteamID.m_SteamID);
    }