public override NetIncomingMessage ReadMessage() { if (!connected) { return(null); } if (messages.Count() > 0) { return(messages.Dequeue()); } if (connected2) { while (tosend.Count() > 0) { INetOutgoingMessage msg = tosend.Dequeue(); DoSendPacket(msg); } } EnetEventRef event_ = new EnetEventRef(); if (platform.EnetHostService(host, 0, event_)) { do { switch (event_.e.Type()) { case EnetEventType.Connect: connected2 = true; break; case EnetEventType.Receive: byte[] data = event_.e.Packet().GetBytes(); int dataLength = event_.e.Packet().GetBytesCount(); event_.e.Packet().Dispose(); NetIncomingMessage msg = new NetIncomingMessage(); msg.message = data; msg.messageLength = dataLength; messages.Enqueue(msg); break; } }while (platform.EnetHostCheckEvents(host, event_)); } if (messages.Count() > 0) { return(messages.Dequeue()); } return(null); }
public override NetIncomingMessage ReadMessage() { if (!connected) { return null; } if (messages.Count() > 0) { return messages.Dequeue(); } if (connected2) { while (tosend.Count() > 0) { INetOutgoingMessage msg = tosend.Dequeue(); DoSendPacket(msg); } } EnetEventRef event_ = new EnetEventRef(); if (platform.EnetHostService(host, 0, event_)) { do { switch (event_.e.Type()) { case EnetEventType.Connect: connected2 = true; break; case EnetEventType.Receive: byte[] data = event_.e.Packet().GetBytes(); int dataLength = event_.e.Packet().GetBytesCount(); event_.e.Packet().Dispose(); NetIncomingMessage msg = new NetIncomingMessage(); msg.message = data; msg.messageLength = dataLength; messages.Enqueue(msg); break; } } while (platform.EnetHostCheckEvents(host, event_)); } if (messages.Count() > 0) { return messages.Dequeue(); } return null; }
public abstract bool EnetHostCheckEvents(EnetHost host, EnetEventRef event_);
public abstract bool EnetHostService(EnetHost host, int timeout, EnetEventRef enetEvent);
public EnetNetServer() { event_ = new EnetEventRef(); messages = new QueueNetIncomingMessage(); }
public override bool EnetHostService(EnetHost host, int timeout, EnetEventRef enetEvent) { EnetHostNative host_ = (EnetHostNative)host; ENet.Event e; bool ret = host_.host.Service(timeout, out e); EnetEventNative ee = new EnetEventNative(); ee.e = e; enetEvent.e = ee; return ret; }
public override bool EnetHostCheckEvents(EnetHost host, EnetEventRef event_) { EnetHostNative host_ = (EnetHostNative)host; ENet.Event e; bool ret = host_.host.CheckEvents(out e); EnetEventNative ee = new EnetEventNative(); ee.e = e; event_.e = ee; return ret; }