public void Send(byte[] packet) { if (packet.Length > MaxPacketLength) { throw new Exception("Tried to send a too large packet"); } int packetLength = packet.Length; if (IsHeaderSizeIncluded) { packetLength += HeaderSize; } byte[] header; if (HeaderSize == 2) { header = BitConverter.GetBytes((ushort)packetLength); } else if (HeaderSize == 4) { header = BitConverter.GetBytes(packetLength); } else { throw new Exception("Unsupported header size: " + HeaderSize); } byte[] data = new byte[packet.Length + HeaderSize]; Array.Copy(header, 0, data, 0, header.Length); Array.Copy(packet, 0, data, header.Length, packet.Length); _client.BeginSend(data); }
public void Send(string packet) { packet = ProcessPacketBeforeSending(packet); byte[] data = TextEncoding.GetBytes(ProcessDataBeforeSending(packet + PacketDelimiter)); if (data.Length > 0) { Client.BeginSend(data); } }