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) { ; } }
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); } } }