public void DispatchToListenerTest() { ENetEvent ev; var listener = new Listener(); void setEvent(ENetEventType type) { var native = new NativeENetEvent { Type = type }; ev = new ENetEvent(native); } setEvent(ENetEventType.Connect); Assert.IsTrue(ev.DisptachTo(listener)); Assert.IsTrue(listener.OnConnectCalled); setEvent(ENetEventType.Disconnect); Assert.IsTrue(ev.DisptachTo(listener)); Assert.IsTrue(listener.OnDisconnectCalled); setEvent(ENetEventType.Receive); Assert.IsTrue(ev.DisptachTo(listener)); Assert.IsTrue(listener.OnReceiveCalled); setEvent(ENetEventType.None); Assert.IsFalse(ev.DisptachTo(listener)); }
private void Run() { ENetEvent eNetEvent = new ENetEvent(); while (_running) { int result = _eNetHost.Service(eNetEvent, 1000); _logger.Info($"Result: {result}"); switch (eNetEvent.Type) { case ENetEventType.ENET_EVENT_TYPE_CONNECT: _logger.Info( $"A new client connected from: {eNetEvent.Peer.Address.Address}:{eNetEvent.Peer.Address.Port}"); break; case ENetEventType.ENET_EVENT_TYPE_RECEIVE: _logger.Info( $"A packet of length {eNetEvent.Packet.DataLength} was received from {eNetEvent.Peer.Address.Address}:{eNetEvent.Peer.Address.Port} on channel {eNetEvent.ChannelId}"); ENetPacket packet = new ENetPacket(); packet.Data = Encoding.UTF8.GetBytes("Test Response\0"); packet.DataLength = (uint)packet.Data.Length; packet.Flags = ENetPacketFlags.ENET_PACKET_FLAG_RELIABLE; eNetEvent.Peer.Send(eNetEvent.ChannelId, packet); break; case ENetEventType.ENET_EVENT_TYPE_DISCONNECT: _logger.Info( $"Client {eNetEvent.Peer.Address.Address}:{eNetEvent.Peer.Address.Port} disconnected"); break; } } }
void PushEvent(ENetEvent eEvent, int nParam) { NetEvent netEvent = new NetEvent(); netEvent.eEvent = eEvent; netEvent.nParam = nParam; lock (mLocker) { mEvents.Add(netEvent); } }
public void netLoop() { update(); var enetEvent = new ENetEvent(); while (true) { while (enet_host_service(_server, &enetEvent, 0) > 0) { switch (enetEvent.type) { case EventType.Connect: //Logging->writeLine("A new client connected: %i.%i.%i.%i:%i", event.peer->address.host & 0xFF, (event.peer->address.host >> 8) & 0xFF, (event.peer->address.host >> 16) & 0xFF, (event.peer->address.host >> 24) & 0xFF, event.peer->address.port); /* Set some defaults */ enetEvent.peer->mtu = PEER_MTU; enetEvent.data = 0; break; case EventType.Receive: currentPeer = enetEvent.peer; if (!PacketHandlerManager.getInstace().handlePacket(enetEvent.peer, enetEvent.packet, (Channel)enetEvent.channelID)) { //enet_peer_disconnect(event.peer, 0); } /* Clean up the packet now that we're done using it. */ enet_packet_destroy(enetEvent.packet); break; case EventType.Disconnect: handleDisconnect(enetEvent.peer); break; } } Thread.Sleep((int)REFRESH_RATE); } }
public static extern int enet_host_service(ENetHost* host, out ENetEvent @event, uint timeout);
public static extern int enet_host_check_events(ENetHost* host, out ENetEvent @event);
static extern int native_host_service(ENetHost* host, out ENetEvent @event, uint timeout);
static extern int native_host_check_events(ENetHost* host, out ENetEvent @event);
public override int host_service(ENetHost* host, out ENetEvent @event, uint timeout) { return native_host_service(host, out @event, timeout); }
public override int host_check_events(ENetHost* host, out ENetEvent @event) { return native_host_check_events(host, out @event); }
public abstract int host_service(ENetHost* host, out ENetEvent @event, uint timeout);
public abstract int host_check_events(ENetHost* host, out ENetEvent @event);
public static int enet_host_service(ENetHost* host, out ENetEvent @event, uint timeout) { return Platform.host_service(host, out @event, timeout); }
public static int enet_host_check_events(ENetHost* host, out ENetEvent @event) { return Platform.host_check_events(host, out @event); }
public void netLoop() { update(); var enetEvent = new ENetEvent(); while (true) { while (enet_host_service(_server, &enetEvent, 0) > 0) { switch (enetEvent.type) { case EventType.Connect: //Logging->writeLine("A new client connected: %i.%i.%i.%i:%i", event.peer->address.host & 0xFF, (event.peer->address.host >> 8) & 0xFF, (event.peer->address.host >> 16) & 0xFF, (event.peer->address.host >> 24) & 0xFF, event.peer->address.port); /* Set some defaults */ enetEvent.peer->mtu = PEER_MTU; enetEvent.data = 0; break; case EventType.Receive: currentPeer = enetEvent.peer; if (!PacketHandlerManager.getInstace().handlePacket(enetEvent.peer, enetEvent.packet, (Channel)enetEvent.channelID)) { //enet_peer_disconnect(event.peer, 0); } /* Clean up the packet now that we're done using it. */ enet_packet_destroy(enetEvent.packet); break; case EventType.Disconnect: handleDisconnect(enetEvent.peer); break; } } Thread.Sleep((int)REFRESH_RATE); } }
public NetEvent(ENetEvent e, string d) { evt = e; data = d; }