public abstract void EnetPeerSend(EnetPeer peer, byte channelID, byte[] data, int dataLength, int flags);
Exemple #2
0
 public abstract void EnetPeerSend(EnetPeer peer, byte channelID, byte[] data, int dataLength, int flags);
Exemple #3
0
 public override NetConnection Connect(string ip, int port)
 {
     peer      = platform.EnetHostConnect(host, ip, port, 1234, 200);
     connected = true;
     return(null);
 }
 public override NetConnection Connect(string ip, int port)
 {
     peer = platform.EnetHostConnect(host, ip, port, 1234, 200);
     connected = true;
     return null;
 }
Exemple #5
0
        public override NetIncomingMessage ReadMessage()
        {
            if (messages.Count() > 0)
            {
                return(messages.Dequeue());
            }

            ENet.Event e;
            bool       ret = ((EnetHostNative)host).host.Service(0, out e);

            event_ = new EnetEventNative(e);

            if (ret)
            {
                do
                {
                    switch (event_.Type())
                    {
                    case EnetEventType.Connect:
                    {
                        EnetPeer peer = event_.Peer();
                        peer.SetUserData(clientid++);
                        EnetNetConnection senderConnectionConnect = new EnetNetConnection();
                        senderConnectionConnect.peer = event_.Peer();
                        NetIncomingMessage message = new NetIncomingMessage();
                        message.SenderConnection = senderConnectionConnect;
                        message.Type             = NetworkMessageType.Connect;
                        messages.Enqueue(message);
                    }
                    break;

                    case EnetEventType.Receive:
                    {
                        byte[] data = event_.Packet().GetBytes();
                        event_.Packet().Dispose();
                        EnetNetConnection senderConnectionReceive = new EnetNetConnection();
                        senderConnectionReceive.peer = event_.Peer();
                        NetIncomingMessage message = new NetIncomingMessage();
                        message.SenderConnection = senderConnectionReceive;
                        message.message          = data;
                        message.Type             = NetworkMessageType.Data;
                        messages.Enqueue(message);
                    }
                    break;

                    case EnetEventType.Disconnect:
                    {
                        EnetNetConnection senderConnectionDisconnect = new EnetNetConnection();
                        senderConnectionDisconnect.peer = event_.Peer();
                        NetIncomingMessage message = new NetIncomingMessage();
                        message.SenderConnection = senderConnectionDisconnect;
                        message.Type             = NetworkMessageType.Disconnect;
                        messages.Enqueue(message);
                    }
                    break;
                    }

                    ret    = ((EnetHostNative)host).host.CheckEvents(out e);
                    event_ = new EnetEventNative(e);
                }while (ret);
            }
            if (messages.Count() > 0)
            {
                return(messages.Dequeue());
            }
            return(null);
        }
 public override void EnetPeerSend(EnetPeer peer, byte channelID, byte[] data, int dataLength, int flags)
 {
     try
     {
         EnetPeerNative peer_ = (EnetPeerNative)peer;
         peer_.peer.Send(channelID, data, (ENet.PacketFlags)flags);
     }
     catch
     {
     }
 }
Exemple #7
0
    public override NetIncomingMessage ReadMessage()
    {
        if (messages.Count() > 0)
        {
            return(messages.Dequeue());
        }

        if (platform.EnetHostService(host, 0, event_))
        {
            do
            {
                switch (event_.e.Type())
                {
                case EnetEventType.Connect:
                {
                    EnetPeer peer = event_.e.Peer();
                    peer.SetUserData(clientid++);
                    EnetNetConnection senderConnectionConnect = new EnetNetConnection();
                    senderConnectionConnect.platform = platform;
                    senderConnectionConnect.peer     = event_.e.Peer();
                    NetIncomingMessage message = new NetIncomingMessage();
                    message.SenderConnection = senderConnectionConnect;
                    message.Type             = NetworkMessageType.Connect;
                    messages.Enqueue(message);
                }
                break;

                case EnetEventType.Receive:
                {
                    byte[] data = event_.e.Packet().GetBytes();
                    event_.e.Packet().Dispose();
                    EnetNetConnection senderConnectionReceive = new EnetNetConnection();
                    senderConnectionReceive.platform = platform;
                    senderConnectionReceive.peer     = event_.e.Peer();
                    NetIncomingMessage message = new NetIncomingMessage();
                    message.SenderConnection = senderConnectionReceive;
                    message.message          = data;
                    message.Type             = NetworkMessageType.Data;
                    messages.Enqueue(message);
                }
                break;

                case EnetEventType.Disconnect:
                {
                    EnetNetConnection senderConnectionDisconnect = new EnetNetConnection();
                    senderConnectionDisconnect.platform = platform;
                    senderConnectionDisconnect.peer     = event_.e.Peer();
                    NetIncomingMessage message = new NetIncomingMessage();
                    message.SenderConnection = senderConnectionDisconnect;
                    message.Type             = NetworkMessageType.Disconnect;
                    messages.Enqueue(message);
                }
                break;
                }
            }while (platform.EnetHostCheckEvents(host, event_));
        }
        if (messages.Count() > 0)
        {
            return(messages.Dequeue());
        }
        return(null);
    }