public void Broadcast(byte channelID, ref Packet packet, Peer[] peers) { if (peers == null) { throw new ArgumentNullException("peers"); } ThrowIfNotCreated(); packet.ThrowIfNotCreated(); if (peers.Length > 0) { IntPtr[] nativePeers = ArrayPool.GetPointerBuffer(); int nativeCount = 0; for (int i = 0; i < peers.Length; i++) { if (peers[i].NativeData != IntPtr.Zero) { nativePeers[nativeCount] = peers[i].NativeData; nativeCount++; } } Native.enet_host_broadcast_selective(nativeHost, channelID, packet.NativeData, nativePeers, (IntPtr)nativeCount); } packet.NativeData = IntPtr.Zero; }
public bool Send(byte channelID, ref Packet packet) { ThrowIfNotCreated(); packet.ThrowIfNotCreated(); return(Native.enet_peer_send(nativePeer, channelID, packet.NativeData) == 0); }
public void Broadcast(byte channelID, ref Packet packet, Peer excludedPeer) { ThrowIfNotCreated(); packet.ThrowIfNotCreated(); Native.enet_host_broadcast_exclude(nativeHost, channelID, packet.NativeData, excludedPeer.NativeData); packet.NativeData = IntPtr.Zero; }