3 我不买vip

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 37w+

golang使用channel实现broadcast

最近的一个项目需要一个类似于广播的功能, 当客户端连接到服务端以后, 需要把相同的一份数据分别发送给每个客户端, 功能虽然简单, 但是还是有坑, 主要的坑就是channel阻塞的问题. 所本文模拟了这个服务, 加深自己对channel的理解. 代码结构如下: 其中broad.go文件, 功能主要是监听client的注册(RegisterChan), 注销(UnregisterChan), 以及定时(time.NewTicker)这三个事件并维护一个m...

2020-06-30 19:22:19

arm嵌入式系统下用golang读取扫码枪数据

项目背景: 成人本科的论文选题是用golang做一个简易的嵌入式POS机应用, 支持扫zfb/wx的在线支付二维码, 所以用c封装了几个函数给golang使用. 那这里面又涉及到了另一个问题, 如何使用arm版golang. 在我前面的文章里有一篇如何去编译arm版golang, 但是就这个项目而言, 我忽略了一个问题: golang调用c代码的时候, 需要指定gcc, 而我所指定的gcc是amd64架构, 就算直接copy到arm板子上也不能用, 还需要编译arm版gcc, 这就很麻烦...

2020-05-26 13:41:09

golang net包tcp超时设置并判断是否超时

golang的net包设置超时有三个函数, 定义在net.Conn, 它是一个interface, 如下:SetDeadline(ttime.Time)error // 设置读写超时, 如果超时, 会返回超时错误. 等同于同时设置以下两个函数.SetReadDeadline(ttime.Time)error // 设置读超时,如果超时, 会返回超时错误...

2020-03-31 22:52:37

ubuntu下用gc的方式编译arm版本的golang并测试

golang官方文档的介绍, go编译器可以支持12种指令集. 本文编译是arm版本的golang.编译环境:Linux ubuntu 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux目标环境:Linux imx6ulevk 4....

2020-03-09 12:29:07

centos下用cmake安装gRPC c++并测试

<一> 预装必要依赖:sudo yum install make automake gcc gcc-c++ kernel-develautoconf libtool pkg-config或者简单粗暴:yum groupinstall "Development Tools" "Development Libraries"<二> 下载安装:1...

2020-03-01 19:28:39

以mosquitto为服务, 用golang实现简单的mqtt发布和订阅

最近的一个项目是在对接hk威视的一个平台, 他们的数据是通过MQTT协议进行发布的.而我之前从来没有接触过MQTT协议, 所以就基于mosquitto搭建了一个MQTT服务, 又写了一个测试文件, 以熟悉后续可能的相关操作.windows下的mosquitto的安装配置还是可以查看此教程, 还是比较详细的, 地址如下:https://www.cnblogs.com/zkwarrior...

2020-02-26 17:42:51

使用linux c开源库libwebsockets编写的websocket客户端

<一>: 背景19年中旬做的一个嵌入式项目, 应用层需要有一个心跳的功能,当时决定用websocket协议, 所以当时就研究了下libwebsockets的使用. 网上的资料并不多, 当时只能研究开源库提供的测试代码, 然后改改后就合并到项目里了. 这几天又把libwebsockets重新编译了下, 顺手重新写了一个简单的websocket客户端. 主要包含了以下三个功能:1...

2020-02-11 22:24:20

linux c websocket开源库libwebsockets的编译和使用

我在编译过程中出现了本文步骤4.1和4.2所解决的两个问题, 如果你也出现了相同的问题, 请根据4.1和4.2解决, 如果没有出现, 请略过步骤4. 现步骤如下:步骤1)下载解压, github地址如下:https://github.com/warmcat/libwebsockets步骤2)假如解压后的目录如此: /home/user/libwebsockets-master,...

2020-02-06 16:00:54

golang 任务队列(生产者消费者模型)

这段时间在做一个zfb在线支付项目, 用到了任务队列, 索性就用生产者消费者模型简单的撸了一把;不足之处, 请多多指教.1, 文件结构如下:2, taskqueue.go 代码如下:package taskqueueimport ( "container/list" "sync" "sync/atomic")// 等待协程的数量var waitRoutine ...

2020-01-02 14:52:55

windows下golang监控鼠标和键盘事件

最近一直在研究golang下监听键盘和鼠标的操作事件功能, github上有也有非常优秀的开源库robotgo, 它地址如下, 有兴趣的同学可以去研究下:https://github.com/go-vgo/robotgo但是目前它的键盘事件是阻塞的, 比如github上展示的一个例子package mainimport ( "fmt" "github.com/go-vg...

2019-12-23 21:13:54

linux c/c++ 字符串压缩成hex

说明:字符串 str = "35363738", 8个字节长度, 压缩成Hex后为4个字节, 分别为16进制的0x35, 0x36, 0x37, 0x38;问题:今天遇到了一个问题, 需要对一个无符号字符串压缩后判断第一个字节, 该无符号字符串是以"c5"开头, 压缩后第一个字节应该是0xc5.但是按照"前人"提供的方法, 总是不能正确压缩.但是像刚刚提到的"35363738"就能...

2019-12-10 17:48:00
勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。