关于bind:bind-socket报EACCESPermission-denied错误

应用的端口是443端口。 通过apk运行bin文件中的bind socket办法,始终报EACCES (Permission denied)谬误。 查网上材料,根本解决办法都是加权限以及不在UI线程中运行连贯网络的局部,我按此批改了之后,都没有成果。 预计是因为端口号是443端口,是保留端口的缘故? 查bind的文档,针对此谬误的解释: EACCES The address is protected, and the user is not the superuser. 间接运行此bin文件没有问题,是因为此时是superuser吧。参考链接:4 ways to fix bind permission denied in Linux

August 23, 2022 · 1 min · jiezi

关于iot:聊聊LiteOS中生成的BinHEXELF三种文件格式

摘要:咱们在应用编译器在编译工程后会要求生成可执行文件,将这些文件烧录到MCU进行运行,达到咱们测试和应用程序的目标,再应用工具链进行编译的时候往往生成.bin、.hex 、.elf 、.alf等文件,这些文件有什么区别呢?能够相互转换吗?LiteOS 有哪些可执行文件呢?本文意义进行论述。本文分享自华为云社区《LiteOS 下载到MCU中的三种文件格式Bin、HEX、ELF》,原文作者:o0龙龙0o。 咱们在应用编译器在编译工程后会要求生成可执行文件,将这些文件烧录到MCU进行运行,达到咱们测试和应用程序的目标,再应用工具链进行编译的时候往往生成.bin、.hex 、.elf 、.alf等文件,这些文件有什么区别呢?能够相互转换吗?LiteOS 有哪些可执行文件呢?本文意义进行论述。 BINbin文件,是根本的二进制文件,是flash中IO保留的根本信息,是有汇编程序间接汇编失去的二进制代码,bin文件采纳程序记录flash中的信息,文本自身蕴含任任何地址信息,bin文件烧录就是指定flash开始地址后一一拷贝即可。利用STM32CubeProm将LiteOS编译后生成的bin文件显示如下图,咱们须要设定flash写入地址能力进行烧录。 HEXhex文件格式是能够烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的形式有很多种,能够通过不同的编译器将C程序或者汇编程序编译生成hex;最罕用的Hex格局是Intel HEX文件格式,即遵循Intel HEX文件格式的ASCII文本文件,文件的每一行都蕴含了 一个HEX记录。这些记录是由一些代表机器语言代码和常量的16进制数据组成的。Intel HEX文件罕用来传输要存储在ROM 或者 EPROM中的程序和数据。大部分的EPROM编程器和FLASH能应用Intel HEX文件。 下面的Huawei_LiteOS.bin对应的HEX文件如下(用notepad++关上) :020000040800F2:2000000000000820F50E0008650F0008650F0008650F0008650F0008650F00080000000041:20002000000000000000000000000000650F0008650F000800000000650F0008650F0008D0...........................................................................................................................................................................................................................:208E0000D883050828830508D4820508148505081C8505082485050868CC03082C850508C8:0C8E20003485050804CD030804CD0308C8:00000001FF文件会有头尾部的的阐明。 文件头部的信息 :020000040800F202带边数据长度;紧跟着前面的0x00 0x00 为地址;再前面的0x04为数据类型,类型共分以下几类: '00' //数据记录'01' //文件完结记录'02' //扩大段地址记录'03' //开始段地址记录'04' //扩大线性地址记录'05' //开始线性地址记录接着0x04前面的两个 0x08 0x00就是数据,示意偏移地址,最初一个0xF2是校验码。 第二行开始的记录地址和所对应的数据其格局是 :开始代码|地址|数据类型|数据|校验 :20|0000|00|00000820F50E0008650F0008650F0008650F0008650F0008650F000800000000|41:20 记录数据长度为20个字节;0000 数据在内中的起始地址00 记录类型00(是一个数据记录)00000820F50E0008650F0008650F0008650F0008650F0008650F000800000000 数据内容41 这一行的校验 最初一行的内容示意文件完结记录 :00000001FFhex文件同一样能够在STM32CubeProm打印出内存的内容(与之前的bin打印是统一的)。 ELF在计算机科学中,是一种用于二进制文件、可执行文件、指标代码、共享库和外围转储格式文件,是UNIX零碎实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和公布的,也是Linux的次要可执行文件格局。 elf(Executable and Linkable Format)可执行与可链接格局,是有别于hex和bin通过记录数据的格局,elf更多而记录程序的连贯转储的格式文件,elf指标文件是由汇编器(assembler)和连贯编辑器(link editor)生成的,内容是二进制,而非可读的文本模式,是能够间接在处理器上运行的代码。 简略的了解,elf文件将二进制(bin)文件和程序形容文件打包后的一种执行文件,下载到程序里的仍然是bin文件的局部,然而仿真器能够依附其余程序表述文件来获取程序执行的地位和二进制的对应。表意文件能够利用readelf在linux下读取,因为我零碎的起因就不赘述了。 其余可执行文件: .asf、.o、.out这些文件都是编译后的可执行文件,和elf以鼓吹都是具备连贯格局进行形容,能够利用仿真器进行仿真应用,只是编译格局和编译器设置的不同能够抉择不同的文件格式。 可转换性因为bin、hex都是只是记录数据的,但elf类型不仅记录数据还有程序形容,所以,elf能够转成bin和hex应用,然而反转。 比照一下,发现bin文件最小最简略,然而安全性差,功能性差,hex蕴含头尾和测验,就有很好的安全性,然而文件比bin大,性能没有elf弱小;elf性能多,然而文件最大。 LIteOS如何生成这些文件的liteOS通过makefile进行文件编译,也是通过makefile进行设置gcc编译文件的输入格局,在工程目录下的makefile代码中: $(LD) $(LITEOS_LDFLAGS) $(LITEOS_TABLES_LDFLAGS) $(LITEOS_DYNLDFLAGS) -Map=$(OUT)/$@.map -o $(OUT)/$@.elf --start-group $(LITEOS_BASELIB) --end-group $(OBJCOPY) -O binary $(OUT)/$@.elf $(OUT)/$@.bin $(OBJDUMP) -t $(OUT)/$@.elf |sort >$(OUT)/$@.sym.sorted $(OBJDUMP) -d $(OUT)/$@.elf >$(OUT)/$@.asm $(SIZE) $(OUT)/$@.elf代码中的解释后的代码 ...

March 26, 2021 · 1 min · jiezi

关于bind:centso7-部署bind993mysql56

1.先装置MySQL,间接yum装置* yum -y install mysql mysql-server2.再装置一些依赖的包 yum -y install openssl openssl-devel libss-dev gcc gcc-c++ mysql-devel3.下载bind, bind官网(https://www.isc.org/)wget ftp://ftp.isc.org/isc/bind9/bind-9.10.3-P2/bind-9.10.3-P2.tar.gz4.下载mysql-bind 补丁源码wget http://nchc.dl.sourceforge.net/project/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz5.解压bind和mysql-bind源码压缩文件    tar zxvf bind-9.10.3-P2.tar.gz    tar zxvf mysql-bind.tar.gz6.将mysql-bind源码目录下的mysqldb.c 和 mysqldb.h拷贝到bind源码目录下的bin/named和bin/named/include/ 目录下    cd mysql-bind    cp -f mysqldb.c mysqldb.h ../bind-9.10.3-P2/bin/named/    cp -f mysqldb.c mysqldb.h ../bind-9.10.3-P2/bin/named/include/7.批改bind源码目录下bin/named/Makefile.in文件    cd ../bind-9.10.3-P2    vim bin/named/Makefile.in    将以下几行:      DBDRIVER_OBJS =                              DBDRIVER_SRCS =                              DBDRIVER_INCLUDES =                          DBDRIVER_LIBS =    批改为:    DBDRIVER_OBJS = mysqldb.@O@    DBDRIVER_SRCS = mysqldb.c    DBDRIVER_INCLUDES = -I/usr/include/mysql  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC   -DUNIV_LINUX -DUNIV_LINUX    DBDRIVER_LIBS = -rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto    DBDRIVER_INCLUDES 的值是通过 mysql_config --cflags 命令获取的    DBDRIVER_LIBS 的值是通过 mysql_config --libs 命令获取的8.批改bind源码目录下bin/named目录下的main.c文件    vim bin/named/main.c    退出 #include "mysqldb.h"    如下:#include <config.h>#include "mysqldb.h"#include <ctype.h>#include <stdlib.h>#include <string.h>     而后在正文代码段 /*  xxdb_init(); */ 后退出 mysqldb_init();    在正文代码段 /*  xxdb_clear(); */后退出 mysqldb_clear();9.批改mysqldb.c批改mysqldb.c中的#include <named/mysqldb.h>为 #include <include/mysqldb.h>10.装置bind    ./configure --prefix=/usr/local/bind --enable-threads  # 指定装置目录和开启多线程的解决能力    make    make install11.配置bind    cd /usr/local/bind-9.10/etc    /usr/local/bind/sbin/rndc-confgen -r /dev/urandom>rndc.conf    cat rndc.conf|tail |head -9 |sed "s/^#//g">named.conf   # 生成配置文件12.创立一个数据库############这版不太好用    Create database mydomain;    创立一张数据表    CREATE TABLE dnsrecord (       name varchar(255) default NULL,      ttl int(11) default NULL,       rdtype varchar(255) default NULL,      rdata varchar(255) default NULL )TYPE=MyISAM;    插入一些测试数据    INSERT INTO dnsrecord VALUES ('test.net', 259200, 'SOA', 'test.net.  www.test.net  200505101 28800 7200 86400 28800');    INSERT INTO dnsrecord VALUES ('test.net', 259200, 'NS', 'ns1.test.net.');    INSERT INTO dnsrecord VALUES ('ns1.test.net', 259200, 'A', '192.168.2.2');    INSERT INTO dnsrecord VALUES ('www.test.net', 259200, 'A', '192.168.2.1');##########################好使###############################DROP TABLE IF EXISTS 10_outside;CREATE TABLE 10_outside ( name varchar(255) default NULL, ttl int(11) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default NULL);---- Dumping data for table `10_outside`--LOCK TABLES 10_outside WRITE;INSERT INTO 10_outside VALUES ('25.71.210.10.in-addr.arpa',3600,'PTR','cas1.test.mydomain.com.cn.');INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'SOA','test.mydomain.com.cn. zhengyu.staff.mydomain.com.cn. 20070319 1800 600 604800 600');INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas1.test.mydomain.com.cn.');INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas2.test.mydomain.com.cn.');INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas3.test.mydomain.com.cn.');INSERT INTO 10_outside VALUES ('27.71.210.10.in-addr.arpa',3600,'PTR','cas2.test.mydomain.com.cn.');UNLOCK TABLES;---- Table structure for table `test_mydomain_com_cn_outside`--DROP TABLE IF EXISTS test_mydomain_com_cn_outside;CREATE TABLE test_mydomain_com_cn_outside ( name varchar(255) default NULL, ttl int(11) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default NULL);---- Dumping data for table `test_mydomain_com_cn_outside`--LOCK TABLES test_mydomain_com_cn_outside WRITE;INSERT INTO test_mydomain_com_cn_outside VALUES ('test.mydomain.com.cn',3600,'SOA','test.mydomain.com.cn. zhengyu.staff.mydomain.com.cn. 20070319 1800 600 604800 600');INSERT INTO test_mydomain_com_cn_outside VALUES ('test.mydomain.com.cn',3600,'NS','cas1.test.mydomain.com.cn.');INSERT INTO test_mydomain_com_cn_outside VALUES ('test.mydomain.com.cn',3600,'NS','cas2.test.mydomain.com.cn.');INSERT INTO test_mydomain_com_cn_outside VALUES ('test.mydomain.com.cn',3600,'NS','cas3.test.mydomain.com.cn.');INSERT INTO test_mydomain_com_cn_outside VALUES ('cas1.test.mydomain.com.cn',3600,'A','10.210.71.25');INSERT INTO test_mydomain_com_cn_outside VALUES ('cas2.test.mydomain.com.cn',3600,'A','10.210.71.27');INSERT INTO test_mydomain_com_cn_outside VALUES ('cas3.test.mydomain.com.cn',3600,'A','10.210.132.80');INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh.test.mydomain.com.cn',3600,'A','10.218.26.191');INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh.test.mydomain.com.cn',3600,'A','10.218.26.192');INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh.test.mydomain.com.cn',3600,'A','10.218.26.193');INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh.test.mydomain.com.cn',3600,'A','10.218.26.194');INSERT INTO test_mydomain_com_cn_outside VALUES ('*',3600,'A','10.210.71.1');INSERT INTO test_mydomain_com_cn_outside VALUES ('conf.test.mydomain.com.cn',3600,'CNAME','cas2.test.mydomain.com.cn.');UNLOCK TABLES;############################################13.持续配置bind vim /usr/local/bind/etc/named.conf在前面依照以下格局退出zone "mydomain.com" {    type master;    notify no;     database "mysqldb dbname tablename hostname user password"; };mydomain.com为要解析的域名dbname 为数据库名hostname为数据库服务器地址user 为可操作后面数据库表的数据库用户名password 为对应数据库用户名的明码配置实现在命令行下运行/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf -g查看没问题后/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf [root@silence etc]# lsbind.keys named.conf named.root rndc.conf root.zone[root@silence etc]# cat root.zone $TTL 86400@ IN SOA ns1.mydomain.com. w1.mydomain.com ( 2018070110 1H 5M 7D 1D) IN NS ns1 IN NS ns2 IN MX 10 mx1 IN MX 20 mx2ns1 IN A 192.168.108.160ns2 IN A 192.168.108.138ns3 IN A 192.168.108.166mx1 IN A 192.168.108.138w1 IN A 192.168.1.2w0 IN A 192.168.1.1www IN A 192.168.108.160* IN A 192.168.108.166[root@silence etc]# cat named.conf key "rndc-key" { algorithm hmac-md5; secret "ZYobWCcSDr2HDCMuojc6gg=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; };options { listen-on port 53 { 127.0.0.1;172.16.188.123; }; directory "/data/work/bind9.9.3"; allow-query-cache { any; }; allow-query { any; }; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; }; zone "." { type hint; file "/data/work/bind9.9.3/etc/root.zone"; }; zone "mydomain" { type forward; forwarders { 114.114.114.114;8.8.8.8; }; forward first; }; logging { channel bind_log { file "/data/work/bind9.9.3/logs/bind.log" versions 3 size 20m; severity info; print-time yes; print-severity yes; print-category yes; }; category default { bind_log; }; }; zone "test.mydomain.com.cn" IN{ type master; notify no; database "mysqldb mydomain test_mydomain_com_cn_outside 172.16.188.123 root 111111"; }; zone "16.172.in-addr.arpa" IN{ type master; notify no; database "mysqldb mydomain 10_outside 172.16.188.123 root 111111"; };运行bind ...

November 25, 2020 · 7 min · jiezi

关于bind:商业智能Business-Intelligence系统的使用及设计原则

各类通过编纂与汇总的数据,是信息时代下的标志性产物。身处于当今由前沿网络技术所引领的社会,大数据曾经俨然成为一种贵重的资源与财产。当然,各种数据在没有系统化的整顿之前,还不过是一段段无意义的信息碎片,咱们很难从大量的碎片中获取到有价值的货色。只有通过高效的可视化剖析工具,能力直观的获取到大数据所带来的资源,为各项策略的制订提供参考。 而当今最高效最直观的解决方案,便是是商业智能(Business Intelligence)零碎可视化大屏。商业智能零碎堪称是展示外围数据的最优工具,它能够将业务的要害指标以图表动画的形式展现到多块屏幕,不仅可让业务人员疾速、精确地从繁冗的材料中找到要害数据,更能为决策人员提供重要参考。 XJR商业智能设计器 这里以XJR商业智能插件为例,来介绍一下可视化大屏的利用及设计规定。 一、何为数据可视化 艰深来讲,其实就是图形化数据,将其清晰无效的表达出来。可直观的将数据出现,便于查看,还能减速开掘数据中暗藏的价值。其本质是可视、可交换、可互动。而且应用大尺寸屏幕来展现数据,其浓烈的科技感容易震撼初用者的第一印象,便于营造特定气氛或典礼感。利用其面积大、可展现信息多的特点,便于多人同时查看,数据能够共享展示,便于团队探讨和决策。 二、可视化大屏次要利用场景 目前次要利用在以政府机关、商业机构、金融中心、实业制作等行业的业务场景中,大数据的价值在此失去充沛展示。比方,数据大屏作为一种无效传递信息的伎俩,正在城市智能经营核心、应急指挥核心、执法监控核心、电力调度核心、金融交易大厅等部门和机构中承当起重要的角色。具备日常监测、剖析研判、应急指挥、展现汇报等多种性能,在帮忙发展科学管理工作等方面发挥作用。这里提供一些行业模板,以作参考。 通用模板 金融服务平台 品牌手机销量剖析 挪动通信IOP大数据平台 疫情防控数据平台 机房设备数据平台 房产物业数据平台 财务数据核心 三、可视化大屏设计准则 或者,人们对可视化大屏的第一印象就是炫酷,但这只是体面,清晰无效的传播数据,才是大屏的里子。 通常有多种类型的资源及数据须要在大屏中展现进去,不过在显示前须要进行页面布局来将主排布主次,明确层级关系和流向,使观看者疾速获取信息的同时,也能均衡视觉。 惯例状况下,企业要开发出一款大屏,须要经验:需要沟通——大屏UI设计——大屏数据开发——大屏前端开发。过程中遵循以下准则:总览优先,细节辅助。 服务于业务,让业务指标和数据正当的展示,因为须要展示的是整个企业的全局业务,故分为次要指标和主要指标两种,次要指标反映外围业务,主要指标用于论述详情,所以在制作时给予不一样的偏重。 优良的UI设计,让使用者更高效更舒服地获取信息。配色的学识次要是背景色,背景色又分为整体背景和元素的背景,无论是哪一个,都听从两点根本准则:深色和谐一致性。深色调是为了防止视觉刺激。 减少动画能让大屏看上去是活的,优化观感体验,不过要把握好度,过分的动效容易喧宾夺主,扰乱使用者的思路,不利于决策者思考与剖析。 目前市面上尽管有泛滥可视化工具,然而大都两极分化重大。大部分为了凸显其性能而设计得枯燥乏味,多数则为了壮丽而壮丽金玉其外;败絮其中,决策者都难以从中获取数据的真正价值。 XJR商业智能插件是基于浏览器的、用于配置数据可视化大屏的工具平台。它提供了丰盛的可视化设计组件,通过简略鼠标操作,即可进行图表布局的调整,能在数分钟内配置出好看实用的BI零碎。 XJR商业智能旨在帮忙企业进行内外部数据整合、数据治理、摸索式剖析以及实现智能化决策。赋予企业大数据分析能力,助力企业构建数据生态系统,帮忙企业降本增收和实现数据资产的变现。 参考资料起源:https://www.xjrsoft.com/

September 16, 2020 · 1 min · jiezi