0

3264

go交叉编译arm程序

编译Go编译器(Host) 因为从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码编译Go需要先编译一个1.4版本的Go版本。

下载完成之后将得到一个go1.4压缩包,接下来进行解压编译:

tar -zxvf go1.4-bootstrap-20171003.tar.gz -C /usr/local/
cd /usr/local/go/src
GOOS=linux GOARCH=amd64 ./make.bash

经过短时间的编译之后将会在go/bin目录下生成go命令二进制文件

设置环境变量 在/etc/bash.bashrc文件中添加如下内容(重启命令行后生效)):

export GOROOT_BOOTSTRAP=/usr/local/go
export CC_FOR_TARGET=/opt/zhaozhongxiang/hwzt_yc_3.10.53/build-x11/tmp/sysroots/x86_64-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc    
export CXX_FOR_TARGET=/opt/zhaozhongxiang/hwzt_yc_3.10.53/build-x11/tmp/sysroots/x86_64-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++

编译Go(ARM) 完成Go1.4的编译之后,可以利用Go1.4来编译新版本的Go。

……

乐果   发表于   2019 年 02 月 20 日 标签:golang 继续阅读

0

3052

udp广播通信

udp广播通信

特点:

1.数据传输不用建立连接,所以不可靠(符合udp协议的特点);

2.数据的发送是面向整个子网的,任何一台在子网内的计算机都可以接收到相同的数据;

3.广播用于udp和原始IP,不能用于TCP;

4.本地广播信息是不会被路由器转发,当然这是十分容易理解的,因为如果路由器转发了广播信息,那么势必会引起网络瘫痪。这也是为什么IP协议的设计者故意没有定义互联网范围的广播机制;

用途:

1.定位本地子网内的主机

前提是已知该主机位于本地子网,但是不知到他的单播地址。例如通过广播向所有子网内的主机的某端口发送数据报,如果主机有进程在该端口等待接收数据并回射数据,那么在recvfrom中会得到该主机的单播地址。

例如:手机通过wifi(ip)方式投影到局域网的电视机这个场景中,电视机不断的通过udp广播方式向同一个局域网中的其他设备告知自身的ip,比如手机收到了广播报文,这时手机上发现了电视机这个设备(手机知道了电视机的ip地址)然后再链接电视机进行投影。

2.减少分组流通

例如,多个客户主机与一个服务器主机通信的局域网中,广播的方式会尽量减少分组流通。

广播地址:

广播地址是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机号为全1的IP地址为广播地址。例如,对于 :192.168.199.0(掩码:255.255.255.0)网段,其广播地址为192.168.199.255 (255 即为2进制的11111111 ),当发出一个目的地址为192.168.199.255的分组时,它将被分发给该网段上的所有计算机。

1.直接广播地址

指Host部分全为1的广播地址。如:192.168.199.255。当某机器发出目的地址为直接广播(如:192.168.199.255)时,路由器通过查找路由表可以转发,直到该网段。

2.受限广播地址

也称本地广播地址,它不被路由发送,但会被送到相同物理网络段上的所有主机,IP地址的网络号和主机号 全为1就是地址255.255.255.255,当某机器发出目的地址为本地广播时,路由器不会转发该包。所以该包只能限制在本网段

golang实例测试:

……

乐果   发表于   2019 年 02 月 18 日 标签:udp 继续阅读

0

3085

编译安装php的rabbitmq扩展

rabbitmq遵循amqp协议,因此php安装amqp扩展即可。

但是安装前,依然需要rabbitmq具体依赖库,所以需要先安装rabbitmq-c。

一、rabbitmq-c安装

去github下载最新稳定版本:

https://github.com/alanxz/rabbitmq-c

例如目前的最新版本:

https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz

wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz .
tar -xzvf rabbitmq-c-0.9.0.tar.gz
cd rabbitmq-c-0.9.0
mkdir build && cd build #这一步是在rabbitmq-c的根目录下创建一个build子目录
# 这一步是让cmake根据../CMakeList.txt,即rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件
# Makefile文件会被创建到build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
sudo cmake --build .  --target install

这时,/usr/local/rabbitmq-c目录下已经有依赖库文件

二、安装amqp扩展

……

乐果   发表于   2018 年 11 月 01 日 标签:rabbitmq 继续阅读

0

2698

rabbitmq编译安装

一、安装erlang

下载最新稳定版本,编译安装,例如:

http://erlang.org/download/otp_src_21.1.tar.gz

wget http://erlang.org/download/otp_src_21.1.tar.gz .
tar -xzvf otp_src_21.1.tar.gz
cd otp_src_21.1
./configure --prefix=/data/service/erlang/otp_21.1
sudo make
sudo make install

报错: configure: error: No curses library functions found configure: error: /home/xiao/download/otp_src_21.1/erts/configure failed for erts

缺少ncurses,安装sudo apt install libncurses5-dev

二、安装rabbitmq

下载最新稳定版本,编译安装,例如:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz

xz -d abbitmq-server-generic-unix-3.7.8.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.8.tar
mv rabbitmq_server... /data/service/rabbitmq
cd /data/service/rabbitmq
./sbin/rabbitmq-server
//此时可能会报erl找不到
//这时需要把/data/service/erlang/otp_21.1/bin加入到环境变量PATH中去
//
//./sbin/rabbitmq-server -detached

报erl找不到,将erlang目录加入PATH: vim /etc/sudoers,修改:

……

乐果   发表于   2018 年 10 月 31 日 标签:rabbitmq 继续阅读

0

2542

平时编写的一些shell脚步例举笔记

批量杀死进程
ps -ef|grep test.sh
xiao      3296 28517  0 10:09 pts/3    00:00:06 /bin/bash ./test.sh
xiao      3365 28517  0 10:09 pts/3    00:00:06 /bin/bash ./test.sh
xiao      3401 28517  0 10:09 pts/3    00:00:06 /bin/bash ./test.sh
xiao      3443 28517  0 10:09 pts/3    00:00:06 /bin/bash ./test.sh
xiao      3480 28517  0 10:09 pts/3    00:00:06 /bin/bash ./test.sh
xiao      5299 28517  0 10:10 pts/3    00:00:06 /bin/bash ./test.sh
xiao      5396 28517  0 10:10 pts/3    00:00:06 /bin/bash ./test.sh
xiao      5431 28517  0 10:10 pts/3    00:00:06 /bin/bash ./test.sh
xiao      5470 28517  0 10:10 pts/3    00:00:06 /bin/bash ./test.sh
xiao      5488 28517  0 10:10 pts/3    00:00:06 /bin/bash ./test.sh
xiao      6589 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      6754 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      6899 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      6972 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      7015 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      7095 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      7129 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh
xiao      7172 28517  0 10:33 pts/3    00:00:05 /bin/bash ./test.sh


ps -ef|grep test.sh|awk '{print "kill -9 " $2}'|sh
服务启动、重启、停止

一个服务的启动、重启、停止的shell脚步:

……

乐果   发表于   2018 年 09 月 06 日 标签:shell 继续阅读

较旧的文章 较新的文章
热评文章