分类 编程.Golang 中的文章

Grpc | 概述

OverView gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。其客户端提供Objective-C、Java接口,服务器侧则有Java、Golang、C++等接……

阅读全文

Cgo | 使用libevent库实现一个定时器

使用libevent库作为例子 下载 & 编译 & 安装libevent $ git clone https://github.com.cnpmjs.org/libevent/libevent.git $ cd libevent && mkdir build && cd build $ cmake .. $ make libevent实现的定时器 // main.cpp #include "event.h" struct event ev; struct timeval tv; void time_cb(evutil_socket_t fd, short event, void *argc) { printf("timer wakeup\n"); event_add(&ev, &tv); // reschedule timer } int main() { struct event_base *base = event_base_new(); tv.tv_sec = 2;……

阅读全文

Golang | builds

概述 通常我们会给每个产品环境设置不同的配置,比如 redis 要在开发环境就连接 localhost:6379,测试环境可能连接某一个主机的 redis。 如果放在 go 里面是否可行?因为 go 是编译二进制包,也没有动态加载这……

阅读全文

Cgo | 简单使用

使用自己的C函数 文件名:testC.go package main /* #include <stdio.h> #include <stdlib.h> void c_print(char *str) { printf("%s\n", str); } */ import "C" //import “C” 必须单起一行,并且紧跟在注释行之后 import "unsafe" func main() { s := "Hello Cgo" cs := C.CString(s) //字符串映射 C.c_print(cs) //调用C函数 defer C.free(unsafe.Pointer(cs)) //释放内存 } 说明: 1、g……

阅读全文