Ejemplo n.º 1
0
        private void NetworkStartAcceptingData()
        {
            if (_socket == null)
            {
                return;
            }

            var container = new PacketDataContainer();

            try {
                _socket.BeginReceiveFrom(container.Buffer, 0, container.Buffer.Length, SocketFlags.None, ref container.Remote, NetworkAcceptDataAsync, container);
            } catch (ObjectDisposedException) {
                ;
            }
        }
Ejemplo n.º 2
0
        public void SendPacket(NetPacket packet, PacketDataContainer dataContainer, RemotePacketState remoteState)
        {
            if (packet == null)
            {
                Logger.Warn("Trying to send empty packet!");
                return;
            }

            var packetId = NetworkRemoteControl.FindPacketIdByType(packet.GetType());

            if (packetId == null)
            {
                Logger.Debug($"Trying to send unknown packet {packet.GetType().FullName}");
                return;
            }

            using (var ms = new MemoryStream()) {
                using (var bw = new BinaryWriter(ms)) {
                    bw.Write((uint)packetId);
                    packet.Write(new StreamWriter(ms), remoteState);
                    _socket.SendTo(ms.GetBuffer(), dataContainer.Remote);
                }
            }
        }