Go语言中文网 为您找到相关结果 567

关于 1.14 版本的问题

当我 brew 安装好后配置 GOROOT、GOPATH、GOBIN 后执行一个简易的包 执行命令如下: ```bash ➜ pwd /Users/just008/Code/Go/calc/bin ➜ echo $GOPATH /Users/just008/Code/Go/calc ➜ go build calc can't load package: package calc is not in GOROOT (/usr/local/Cellar/go/1.14.2_1/libexec/src/calc) ``` zsh 配置如下 ```bash export GOPATH=$$HOME/Code/Go:/HOME/Code/Go/calc:$HOME/Code/Go/learning e...阅读全文

博文 2020-04-22 03:54:37 xhh110

golang--类似mochiweb的多进程监听tcp链接

用Erlang开发web,很可能就会使用到mochiweb。mochiweb使用16个Erlang式的进程来监听tcp链接,使得任何链接进来都会很快得到处理。Golang跟Erlang很像,在这里实现了一个类似mochiweb的tcp监控链接,一个简单的echo服务器。先看代码。 1 package main 2 3 import ( 4 "log" 5 "runtime" 6 "net" 7 ) 8 9 func main() { 10 11 tcpAddr, err := net.ResolveTCPAddr("tcp", ":9988") 12 check_error(err) 13 tcpListener, err := net.ListenTCP("tcp", tcpAddr) 1...阅读全文

博文 2014-10-04 19:26:05 getong

window 下 go lang 环境变量一键批处理设置

目的,就是为了我这种贼懒得人用的 作者:风来了.呆狐狸 使用的是GO lang ZIP压缩包安装 ,可以自动设置环境变量 使用方法 保存为 go.bat 放到go 目录内,执行go.bat即可,其中GOARCH 要根据自己系统位数设置,这边是64位系统 原理:setx 设置用户环境变量 系统:win7及以上版本可用,winXP不可以使用 目录格式 E:\go E:\go\go #go.bat文件存放目录,该目录就是GO lang ZIP 压缩包解压缩后的目录 E:\go\GOPATH E:\go\Dev 精简版 @ECHO OFF IF EXIST %CD%\bin\go.exe ( IF EXIST %systemroot%\system32\setx.exe ( rem 处理器架构 38...阅读全文

博文 2014-12-07 23:00:01 wljk506

基于CentOS下sshd和golang环境的Docker

1、Dockerfile文件 #继承centos7镜像 FROM centos:centos7 MAINTAINER tpythoner tpythoner@gmail.com" #yum安装sshd服务 #RUN yum install -y openssh openssh-server openssh-clients RUN yum install -y openssh-server #创建sshd RUN mkdir /var/run/sshd RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key #设置root密码以及添加tpython...阅读全文

博文 2015-06-07 14:00:01 tpythoner

docker+jenkins+golang持续集成持续交付(CI/CD)

最近因公司发展需要,增加了一些go语言开发,对项目要求使用jenkins+go+docker自动部署上线。 一、安装jenkins 1、安装Jenkins,详情见centos使用docker搭建jenkins,jenkins使用方法见jenkins的安装和使用 2、jenkins安装go插件,Go plugin 安装该插件,点击 “系统管理” -> “管理插件” -> “可选插件” -> 选择 “Go Plugin” -> 点击最下边 “直接安装” 即可完成安装。 3、配置go插件 系统管理” -> “Global Tool Configuration” -> “Go” -> “新增 Go” image.png 二、在搭建jenkins的服务器和要构建上传的应用服务器均安装go环境 1、下载...阅读全文

博文 2019-04-25 17:34:46 黑客不黑_

Golang Gin实践 番外 请入门 Makefile

Golang Gin实践 番外 请入门 Makefile 原文地址:Golang Gin实践 番外 请入门 Makefile 前言 含一定复杂度的软件工程,基本上都是先编译 A,再依赖 B,再编译 C...,最后才执行构建 如果每次都人为编排,又或是每新来一个同事就问你项目 D 怎么构建、重新构建需要注意什么...等等情况,岂不是要崩溃? 我们常常会在开源项目中发现 Makefile,你是否有过疑问? 本章节会简单介绍 Makefile 的使用方式,最后建议深入学习 怎么解决 对于构建编排,Docker 有 Dockerfile ,在 Unix 中有神器 Make .... Make 是什么 Make 是一个构建自动化工具,会在当前目录下寻找 Makefile 或 makefile 文件。如...阅读全文

博文 2018-08-26 20:34:53 煎鱼

对 echo 框架进行统一的自定义错误处理

借助移动端的增长,如今 RESTful 风格的 API 已经十分流行, 用各种语言去写后端 API 都有很成熟方便的方案,用 golang 写后端 API 更是生产力的代表, 你可以用不输 python/ruby 这类动态语言的速度,写出性能高出一两个数量级的后端 API 。 ------- ECHO 框架 ------- 由于 golang 的标准库在网络方面已经很完善,导致框架发挥余地不大。很多高手都说, 用什么框架,用标准库就写好了,框架只是语法糖而已,还会限制项目的发展。 不过我们并不是高手,语法糖也是糖,用一个趁手的框架还是能提高不少效率的。 要是在半年前,你让我推荐框架,我会说有很多,都各有优缺点,除了 beego 随便选一个就可以。 但是来到2017年,一个叫 Echo 的框架...阅读全文

博文 2017-07-11 03:05:22 王瑞华

[翻译]Go 是如何用 go 编译自己的

文在此《How Go uses Go to build itself》,作者为 Dave Cheney。 ————翻译分隔线———— Go 是如何用 go 编译自己的 这篇文章基于 2013 年四月中旬我为悉尼 Go 用户组做的一次关于 Go 构建过程的演讲而成。 在邮件列表或 IRC 的频道里经常有人寻求关于 Go 编译器、运行时和内部原理的细节文档。当前,关于 Go 的内部原理的权威文档的来源就是我鼓励每个人都去阅读的源代码。虽然这样说,但是从 Go 1.0 发布以来 Go 的构建过程就已经稳定了,因此将其记录在这里或许也会有其相应的价值。 这篇文章大致介绍了 Go 编译过程的九个步骤,从源代码开始,结束于经过充分测试的安装好的 Go 。为了简明扼要,所有路径都相对与源代码检出的根路径,...阅读全文

博文 2014-10-09 16:20:14 mikespook

阿里云CENTOS7.0搭建VNC+GOLANG+DOCKER

为了方便弄个桌面 安装步骤: 关闭防火墙,centos的防火墙是firewalld,关闭防火墙的命令systemctl stop firewalld.service 。关闭enforce,setenforce 0。 sudo yum groupinstall -y "GNOME Desktop" 重启机器 1.安装tigervncserver,yum install tigervnc-server tigervnc-server-module 2.拷贝配置文件cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service 3.进入到配置文件目录cd /etc/systemd/system 4...阅读全文

博文 2015-06-17 20:23:34 x_focus

Revel or Beego?

<p>Hi, i&#39;m new in go and i&#39;ll start a new web project (it&#39;s a personal initiative) and i want use go lang. I would use a go framework to build a rest API layer. Do you used revel or beego? which one do you think that is better? Any recommendation? My biggest concern is the life time and maintenance of the chosen frame...阅读全文

资源 2016-07-04 17:00:12 xuanbao

go web编程疑惑

//以下是部分代码; l, err = net.Listen("tcp", "127.0.0.1:8080") for{ conn, err := l.Accept() go handleRequest(conn) } func handleRequest(conn net.Conn) { _, err := conn.Read(buf) n := bytes.Index(buf, []byte{0}) message := string(buf[:n-1]) conn.Write([]byte(message)) conn.Close() } 其实是个简单的echo server,问题来了: 把它当http server来用,chro...阅读全文

【工具】一款基于go语言的agent

本文来自:http://www.ttkmwl.com 最给力的程序源码下载论坛 -通天源码论坛 一 介绍 在构建数据库自动化运维系统的时候,数据库服务器上必须要有一个agent来执行web服务器端发起的命令,我们研究了好几种技术Celery,Redis Queue 或者基于socket实现,当然还有自己写,因为之前有同事已经完成了一个agent---servant,在和同事沟通之后,我们决定复用servant,不用重复造轮子。servant是一款基于go语言编写的,通过http协议调用,提供权限认证和远程调用,支持异步执行命令的agent ,满足我们目前数据库备份任务,定时收集数据库元数据信息,定时校验备份的有效性的任务需求。本文是一篇how to 文档,相对比较详细的介绍如何安装和使用se...阅读全文

博文 2017-06-16 04:03:20 通天论坛IT技术

php +go关键字实现协程

今天在知乎浏览时忽然发现了一个有趣的东西,php竟然可以实现协程的实现,而且还是通过go关键字实现,顿时感觉php现在发展的好迅速,竟然把go里的东西都借鉴去。 只不过这是在一个叫Swoole的框架中实现的。 Swoole4为PHP语言提供了强大的CSP协程编程模式。底层提供了3个关键词,可以方便地实现各类功能。 Swoole4提供的PHP协程语法借鉴自Golang,在此向GO开发组致敬 PHP+Swoole协程可以与Golang很好地互补。Golang:静态语言,严谨强大性能好,PHP+Swoole:动态语言,灵活简单易用 关键词 go :创建一个协程 chan :创建一个通道 defer :延迟任务,在协程退出时执行,先进后出 这3个功能底层实现全部为内存操作,没有任何IO资源消耗。就像...阅读全文

博文 2019-01-11 21:34:43 三月孙记风

关于Web编程异步模型的白日梦

早上刷牙,处于半睡状态。突然想起昨天晚上看到的那个 go-lang 的 MVC 框架,若使用 go func() 方式异步获取数据,应当是不错的。窃喜……梦醒…… 在地铁上被前前后后那些特种男女逼到车角,无奈。又想起早上那个白日梦,遂上网搜索了一番。得老赵的佳作一篇《F# 与ASP.NET(1):基于事件的异步模式与异步Action》。之前看过,由于对微软无爱,未能细品。今日一读,如醍醐灌顶,豁然开朗。 遂整理思路如下,以待后用。 在说异步模型之前,先说说最常见的同步模型吧。例如下面的 PHP 代码: // 获取数据 $userInfo = getUserInfo(); $newsList = getNewsList(); $topRateNewsList = getNewsList('DE...阅读全文

博文 2014-10-09 16:15:12 mikespook

MAC下 Intellij IDEA GO语言插件安装及简单案例

1.下载地址 风.fox Intellij IDEA下载(community版 就可以) https://www.jetbrains.com/idea/download/ GO语言 下载 https://golang.org/dl/ LINUX 下安装 http://blog.csdn.net/fenglailea/article/details/26163927 2.安装 2.1 Intellij IDEA 安装略 2.2 Go Programming Language 安装 这里选择 Apple OS X 这个 go1.7.3.darwin-amd64.pkg (78MB) 下载安装即可 3.安装 go 语言插件 Intellij IDEA 菜单 -》Preferences-》Plugi...阅读全文

博文 2016-11-06 15:00:03 wljk506

Hyperledger Fabric SDK Go构建第一个应用

写在前面:本文内容翻译自:https://chainhero.io/2018/03/tutorial-build-blockchain-app-2/ ,文档中的命令操作均在实际环境进行验证,现将成果分享给大家。 目录 一.概述 二.安装环境 三.安装Fabric SDK Go 四.启动区块链网络 五.使用Fabric SDK Go 一. 概述 首先,为新入门的开发小白普及一下何为SDK 软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。软件开发工具包是一些被软件工程师用于为...阅读全文

博文 2018-07-26 01:35:21 暗黑魔君

grpc-gateway:grpc转换为http协议对外提供服务

我所在公司的项目是采用基于Restful的微服务架构,随着微服务之间的沟通越来越频繁,就希望可以做成用rpc来做内部的通讯,对外依然用Restful。于是就想到了google的grpc。 使用grpc的优点很多,二进制的数据可以加快传输速度,基于http2的多路复用可以减少服务之间的连接次数,和函数一样的调用方式也有效的提升了开发效率。 不过使用grpc也会面临一个问题,我们的微服务对外一定是要提供Restful接口的,如果内部调用使用grpc,在某些情况下要同时提供一个功能的两套API接口,这样就不仅降低了开发效率,也增加了调试的复杂度。于是就想着有没有一个转换机制,让Restful和gprc可以相互转化。 在网上看到一个解决方案,https://github.com/grpc-ecosy...阅读全文

博文 2017-12-12 06:04:43 andyidea

基于角色的访问控制框架GRBAC-storyicon

Grbac是一个快速,优雅和简洁的RBAC(基于角色的访问控制)框架。它支持增强的通配符并使用Radix树匹配HTTP请求。可以在任何现有的数据库和数据结构中轻松使用它。 grbac的作用是确保指定的资源只能由指定的角色访问。请注意,grbac不负责存储鉴权规则和分辨“当前请求发起者具有哪些角色”,更不负责角色的创建、分配等。这意味着您应该首先配置规则信息,并提供每个请求的发起者具有的角色。 grbac将`Host`、`Path`和`Method`的组合视为`Resource`,并将`Resource`绑定到一组角色规则(称为`Permission`)。只有符合这些规则的用户才能访问相应的`Resource`。 读取鉴权规则的组件称为`Loader`。grbac预置了一些`Loader...阅读全文

开源项目 2019-07-08 11:30:01 storyicon

go服务端----使用dotweb框架搭建简易服务

使用dotweb框架搭建简易服务 go语言web框架挺多的,所谓琳琅满目,里面也有很多优秀的,比如echo、beego等,但体验下来,总是觉得哪里有点小疙瘩,后来才明白过来,echo太简单,很多日常使用的基础模块不具备,需要额外实现,而beego又是太完善,虽然可定制化,但需要熟悉的过程,于是,二话不说,准备了一款"中间态"go-web框架 - dotweb,据说,在几个go比较活跃的群里还是很"非著名"的:) 也希望更多的人能了解到dotweb,能够提出一些建议和思路,感激不尽! 二话不说,github地址:https://github.com/devfeel/dotweb 下面贴一下用dotweb搭建一个简易的应用服务的代码片段,非常的简单,看一下代码注释也很容易理解。 1 import...阅读全文

博文 2017-06-10 16:00:01 pzrr

配置go语言vim

Go语言自带vim 的语法高亮文件。 1: 开启vim语法高亮 vim ~/.vimrc syntax on set fencs=utf-8,gbk 2:将/usr/local/go/misc/vim/目录下文件拷贝到~/.vim/目录下(如果没有该目录则新建) mkdir ~/.vim cp -R /usr/local/go/misc/vim/* ~/.vim/ 3:新建~/.vim/ftdetect/go.vim,加入下面的内容:au BufRead,BufNewFile *.go set filetype=go echo "au BufRead,BufNewFile *.go set filetype=go" > ~/.vim/ftdetect/go.vim 只需3步,开启vim go...阅读全文

博文 2015-02-27 20:00:04 pkufergus

golang第一篇

介绍 Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。 罗布·派克(Rob Pike),罗伯特·格瑞史莫(Robert Griesemer),及肯·汤普逊(unix的创造者)于2007年9月开始设计Go语言,稍后Ian Lance Taylor, Russ Cox加入项目中。Go语言是基于Inferno操作系统所开发的。Go语言于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。 描述 Go语言的语法接近C语言,但是对于变量的声明是不同的,其他语法不同之处是For循环和if判断语句不需要用小括号括起来。Go语言支持垃圾回收功能。Go语言的并行模型是以东尼·霍尔的通信顺序进程(CSP...阅读全文

博文 2015-10-12 03:00:01 7explore-share

用wrk测试nginx/ndoejs/golang

硬件环境 $ lscpu Architecture: x86_64 CPU 运行模式: 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 每个核的线程数:2 每个座的核数: 4 Socket(s): 1 NUMA 节点: 1 厂商 ID: GenuineIntel CPU 系列: 6 型号: 58 Model name: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 步进: 9 CPU MHz: 2021.406 CPU max MHz: 3900.0000 CPU min MHz: 1600.0000 BogoMIPS: 6784.72 虚拟化: VT-x...阅读全文

博文 2017-11-16 08:03:30 chuqingq

mac golang 环境搭建

一、mac 前端安装1、HomebrewHomebrew是mac的包管理工具。Homebrew安装之前必须先安装Xcode command line tools(用xcode-select --install进行安装)安装在此之前,必须保证Xcode command line tools(用xcode-select --install进行安装)已经安装。然后在终端中使用如下命令按照指引安装Homebrew。$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装完成以后,将Homebrew的可执行命令添加到环境变量中。echo 'export PATH="/usr...阅读全文

博文 2018-09-30 19:34:38 零熠

Go语言: 生成Protobuf的Service接口

Protobuf 是Google发布的开源编码规范, 官方支持C++/Java/Python等几种语言. Go语言发布之后, Go的官方团队发布的GoProtobuf也实现了Protobuf支持. 不过GoProtobuf官方版本并没有实现rpc的支持. protoc-gen-go 甚至连 service 的接口也未生成. 如果看过 “JSON-RPC: a tale of interfaces” 文章, 会发现Go语言支持rpc非常容易. 我们现在就开始尝试给GoProtobuf增加rpc的支持. 当然, 第一步是要生成Service接口. 创建 service.go 文件: // Copyright 2013 . All rights ...阅读全文

博文 2015-05-05 21:37:28 chai2010

golang 网络框架之 thrift

thrift 最初是 facebook 开发使用的 rpc 通信框架,后来贡献给了 apache 基金会,出来得比较早,几乎支持所有的后端语言,使用非常广泛,是不可不知的一个网络框架 和 grpc 一样,需要先定义通信协议,然后实现自己业务逻辑,下面还是通过一个简单示例(之前的echo程序)说明 thrift 的用法,下面示例使用的完整代码在下列地址:实现文件:https://github.com/hatlonely/...协议文件:https://github.com/hatlonely/... 简单 echo 服务 获取 thrift go get git.apache.org/thrift.git/lib/go 定义协议文件 namespace go echo struct EchoR...阅读全文

博文 2018-02-04 17:34:36 hatlonely

Go项目的目录结构

载:http://blog.studygolang.com/2012/12/go%E9%A1%B9%E7%9B%AE%E7%9A%84%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84/ 项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性 1、一般的,一个Go项目在GOPATH下,会有如下三个目录: 1 |--bin 2 |--pkg 3 |--src 其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。 对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源...阅读全文

博文 2015-04-24 16:00:00 yugongpeng_blog

Go 加密文件系统 gocryptfs

gocryptfs 是一个使用 Go 开发的,加密的覆盖文件系统。gocryptfs 基于 [go-fuse](https://github.com/hanwen/go-fuse) FUSE 库和其 LoopbackFileSystem API 构建。gocryptfs 灵感来源于 [EncFS](http://www.oschina.net/p/encfs),修复了其安全问题,提供更好的性能。 gocryptfs 当前只支持 Linux 系统,以后会继续支持 OS X。 安装:

$ go get github.com/rfjakob/gocryptfs
...阅读全文

开源项目 2016-01-05 16:00:00 rfjakob

Go语言WebSocket

自:http://www.cnblogs.com/ghj1976/archive/2013/04/22/3035592.html Go语言标准包里面没有提供对WebSocket的支持,但是在由官方维护的go.net子包中有对这个的支持,需要独立下载, Go websocket package 下载地址:http://code.google.com/p/go.net/websocket 。 Go get 命令下载:go get code.google.com/p/go.net/websocket Go实现的WebSocket的文档:http://godoc.org/code.google.com/p/go.net/websocket WebSocket官网提供了一个webSocket测试地址:...阅读全文

博文 2016-01-31 04:00:01 LeoHsiun

Golang 代码检查工具

需要先安装 gometalinter工具 #!/bin/bash #should install #go get github.com/alecthomas/gometalinter #gometalinter --install --update CURDIR="$( cd "$( dirname "$0" )" && pwd )" export GOPATH=$CURDIR/.. echo GOPATH=$GOPATH dir=($GOPATH/src/logic/... $GOPATH/src/battle/...) for i in ${dir[@]} do echo checking $i echo -----------------------------------------...阅读全文

博文 2018-07-26 11:30:01 mrblue

如何在 Go 中使用 CGroup 实现进程内存控制

背景 从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。 使用 CGroup 有如下好处: 在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护。对于存在内存泄漏的进程,可以设置内存限制,通过系统 OOM 触发的 Kill 信号量来实现重启。CGroup 快速入门默认挂载分组 Linux 系统默认支持 CGroup, 而且默认挂载所有选项,可以使用 mount -t cgroup 来查看: $ mount -t cgroup cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_a...阅读全文

博文 2019-06-04 06:33:09 xjtuhit

Go项目的目录结构

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性 1、一般的,一个Go项目在GOPATH下,会有如下三个目录: |--bin |--pkg |--src 其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源文件放入了pkg中。这显然是不对的。pkg中的文件是Go编译生成的,而不是手动放进去的。(一般文件后缀.a)对于src目录,存放源文件,Go中源文件以包(package)的形式组织。通常,新建一个包就在src目录中新建一个文...阅读全文

博文 2014-10-27 03:00:01 ghgyj

基于 gitlab-ci 构建 golang 项目 CI 环境

在 github 上托管 go 开源项目,CI 使用 travis 的服务感觉很方便,几乎不需要额外的设置,但是涉及到公司的项目,通过 gitlab-ci 来跑 golang 项目的 CI,需要一点技巧。 思路大致是这样: 创建项目在 GOPATH 中的目录的 symbolic link ,指向 gitlab-runner 在该项目上执行 CI 时的工作目录 切换到这个链接目录,执行每个 stage 的任务 具体的 .gitlab-ci.yaml 文件内容如下: before_script: - export GO_PROJECT_NAMESPACE="$GOPATH/src/gitexample.com/$CI_PROJECT_NAMESPACE" - echo $GO_PROJECT_N...阅读全文

博文 2017-12-26 07:34:48 Ruhm

windows配置zsh终端

前言 习惯了mac 的终端工具,切换会windows 后终端命令行真的超难以,于是将zsh 装起来 安装Linux的Windows子系统 win10 控制面板>程序和功能>启用或关闭windows功能 image.png 在应用商店里搜索Linux,安装Ubuntu image.png 设置Ubuntu 的用户名和密码 安装ConEmu 根据电脑版本选择下载:传送门 默认使用bash 即可进入Ubuntu命令行 image.png 配置zsh 现在开始就是Ubuntu的环境,重点开始配置我们的zsh 安装 zsh $ sudo apt-get install -y zsh 安装 oh-my-zsh $ sh -c "$(curl -fsSL https://raw.github.com/ro...阅读全文

博文 2019-04-20 00:34:40 Shrike_55e0

golang 调用 cgo coredump 获得方法

写一个错误的c程序 package dlsym import "testing" func Test_intercept(t *testing.T) { Intercept("gethostbyname\x00") } package dlsym // #cgo CFLAGS: -I. // #include // #include "dlsym_wrapper.h" import "C" import "unsafe" func Intercept(symbol string) { ptr := unsafe.Pointer(&([]byte(symbol)[0])) C.intercept((*C.char)(ptr), C.size_t(len(symbol)))...阅读全文

博文 2017-02-10 10:29:10 taowen

免序列号安装MKL包

最近要用到FFT, 找了许多免费的go下资源, 比较后觉得gosl最好. 主要是速度快, 内容全.它用到硬件加速, 其中有个MKL包下载比较麻烦, 搜索了很多资料后发现了一个简单办法. 全套命令如下:cd /tmpwget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUBsudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUBsudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproduct...阅读全文

博文 2018-06-01 20:56:18 wzwmzm

Go语言的RPC介绍(含Protobuf-RPC)

本文在 Golang中国博客 的地址: http://blog.go-china.org/09-protorpc 标准库的RPC RPC是远程调用的简称, 简单的说就是要像调用本地函数一样调用服务器的函数. Go语言的标准库已经提供了RPC框架和不同的RPC实现. 下面是一个服务器的例子: type Echo int func (t *Echo) Hi(args string, reply *string) error { *reply = "echo:" + args return nil } func main() { rpc.Register(new(Echo)) rpc.HandleHTTP() l, e := net.Listen("tcp", ":1234") if e != n...阅读全文

博文 2015-06-16 08:50:36 chai2010

go get如何下载私有仓库

因为工作需要,我们用得都是自己搭建得git仓库,go get无法下载私有仓库, go get -insture 倒是可以下载,但是在go mod下无法自动 网上看了一大堆文章,各种方法说得乱七八糟,不顶用,最终解决方法如下 1、代码仓库一定要使用https(非常重要) 2、使用https后go get就自动会给你提示了 fatal: could not read Username for 'https://xxx.com': terminal prompts disabled If this is a private repository, see https://golang.org/doc/faq#git_https for additional information. 看到重点没有,...阅读全文

博文 2019-08-13 12:32:50 悟道人

Swoole 2.1 正式版发布,协程+通道带来全新的 PHP 编程模式

PHP的异步、并行、高性能网络通信引擎 Swoole 已发布 2.1.0 版本。新版本提供了全新的短名 API,完整支持了协程(Coroutine)+通道(Channel)特性,为 PHP 语言带来了全新的编程模式。Swoole 2.1的API借鉴至Go语言,在此向Go语言开发组致敬。 Coroutine go(function () { co::sleep(0.5); echo "hello"; }); go("test"); go([$object, "method"]); Channel $chan = new chan(128); $chan->push(1234); $chan->push(1234.56); $chan->push("hello world"); $chan->p...阅读全文

博文 2018-02-09 17:34:39 韩天峰

Golang protobuf

基础知识可以参考 Protobuf 以及在Laya中的使用 protoc2 与 protoc3 区别 Golang gob与rpc简介 一、安装 参考golang使用protobuf插件 1.protoc protoc是protobuf文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。 通过查看protoc的源码(参见github库)可以知道,protoc在设计上把protobuf和不同的语言解耦了,底层用c++来实现protobuf结构的存储,然后通过插件的形式来生成不同语言的源码。可以把protoc的编译过程分成简单的两个步骤: 解析.proto文件,转译成protobuf的原生数据结构在内存中保存; 把pro...阅读全文

博文 2019-03-21 00:34:41 懒皮

go程序内存占用的困惑

新手, 用 github.com/labstack/echo 写了一个api, 里面调用mongodb获取一些数据 我调用一次api内存就增加一点点, 感觉内存一直在增加就没有减少过, 等了很久都没有减少过,go不是说自动回收资源嘛,怎么只有增加没有减少, 望大侠指点下可能是哪里出了问题, 大概代码如下: ```go package api import ( "etc" "github.com/labstack/echo" ) //ApiServer 实体 type ApiServer struct { echo *echo.Echo } //NewApiServer 创建实例,加载配制文件 func NewApiServer() (*A...阅读全文

使用golang来设计我们的Ubuntu Scope

我们知道golang越来越被很多的开发者来开发应用。go语言也可以用于开发Ubuntu Scope。在今天的教程中,我们将详细介绍如何使用go语言来开发我们的Scope。这对于很多的不太熟悉C/C++的开发者来说,无疑是一个福音。对我来说,这个语言也是比较新的。如果大家想学习golang的话,建议大家阅读“Go by Example”。 对于更多的关于Go Scope的开发,可以参阅文章“Go scopes development”。 IDE选择 由于一些原因,目前我们的Ubuntu SDK并没有支持go语言的Scope的开发。可喜的是,我们可以使用Command Line来完成我们的开发。俗话说,好镰不误砍柴功。一个好的工具无疑能帮我们更快更好地开发。我目前使用的编辑器是LiteIDE。这...阅读全文

博文 2015-07-04 16:01:02 UbuntuTouch

Termux and Golang (android)

<p>Hi Gophers, I recently installed Termux on an android phone (and a whole ecosystem Droid Edit, Amaze, etc...) to try to have my Go development on mobile. I did <strong>apt install golang</strong> with no issues, installed git too, setup my $GOPATH in shared space and all. I could even go get some packages like Bolt and Echo cor...阅读全文

资源 2017-02-06 12:00:21 blov

Go:git gofmt pre-commit hook

我们使用 git 做 Go 源码的版本控制,在提交前,我们需要对代码自动格式,并且当未格式的时候,输出一些信息,下面是一个这样的脚本: 注:该脚本来源于:http://golang.org/misc/git/pre-commit 关于介绍清理 Go 代码的小文章:An Introduction to Go Tools and Clean Code #!/bin/sh # Copyright 2012 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # git gof...阅读全文

博文 2015-01-29 17:00:01 dingyuduan