void Send(byte[] array, int offset, int count)
    {
        var stream = socket.GetStream();

        if (stream.CanWrite)
        {
            stream.BeginWrite(array, offset, count, (s) =>
            {
                stream.EndWrite(s);
            }, null);
        }
    }