public int ReceiveData(byte[] data, int offset, out NetworkGamer sender) { sender = null; if (!IsDataAvailable) { return(0); } NetworkSession.NetworkEvent packet = packetQueue.Dequeue(); int len = Math.Min(packet.Packet.Length, data.Length); Array.Copy(packet.Packet, 0, data, offset, len); foreach (NetworkGamer gamer in Session.AllGamers) { // FIXME: This is a bad equality check! if (gamer == packet.Gamer) { sender = gamer; return(len); } } // We should never get here! return(len); }
public int ReceiveData(PacketReader data, out NetworkGamer sender) { sender = null; if (!IsDataAvailable) { return(0); } uint len = 0; NetworkSession.NetworkEvent packet = packetQueue.Dequeue(); data.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); data.BaseStream.Write(packet.Packet, 0, packet.Packet.Length); data.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); foreach (NetworkGamer gamer in Session.AllGamers) { // FIXME: This is a bad equality check! if (gamer == packet.Gamer) { sender = gamer; return((int)len); } } // We should never get here! return((int)len); }
public void SendData(PacketWriter data, SendDataOptions options) { // FIXME: Do we want to alloc like this? -flibit byte[] mem = (data.BaseStream as System.IO.MemoryStream).ToArray(); data.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); foreach (NetworkGamer gamer in Session.AllGamers) { NetworkSession.NetworkEvent evt = new NetworkSession.NetworkEvent() { Type = NetworkSession.NetworkEventType.PacketSend, Gamer = gamer, Packet = mem, Reliable = options }; Session.SendNetworkEvent(evt); } }
public void SendData( byte[] data, int offset, int count, SendDataOptions options, NetworkGamer recipient ) { // FIXME: Do we want to alloc like this? -flibit byte[] mem = new byte[count]; Array.Copy(data, offset, mem, 0, mem.Length); NetworkSession.NetworkEvent evt = new NetworkSession.NetworkEvent() { Type = NetworkSession.NetworkEventType.PacketSend, Gamer = recipient, Packet = mem, Reliable = options }; Session.SendNetworkEvent(evt); }