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

Go - http.Client源码分析

1. 起因 分析http.Client源码实现的起因, 是因为在使用如下步骤模拟网站登录时, 出现了问题, 参考知乎 - go net/http.Client 处理redirect: POST账号密码等参数进行登录 下发token, 此token通过cookie下发 重定向到主页/ 在通过http.Post进行请求, 预期不进行重定向, 能够直接获取到cookie值, 但实际上go帮我们处理了重定向, 丢失了cookie值 分析源码后, 可以很轻易地解决这个问题: // 请求http.calabash.top将被301重定向到https myClient := http.Client{ CheckRedirect: func(req *http.Request, via []*http.Re...阅读全文

博文 2019-08-23 16:34:38 hsabalaaaC

一个golang 实现tcp服务例子

package main import ( "fmt" "net" "time" "os" "os/signal" "sync" ) const ( WorkerCount = 2 ) type Task struct { Id int32 Message string } var wg sync.WaitGroup var taskChannel = make(chan Task) var signChannel = make(chan os.Signal, 1) var exitChanel = make(chan int) func main() { go installSign() tcpAddr, err := net.ResolveTCPAddr("tcp4", "127.0.0...阅读全文

博文 2018-01-31 15:33:03 何吕

google hosts 2015 最新版本

chromr浏览器注意:在地址栏里输入 "chrome://flags/",然后查找QUIC,启用该协议,同时建议启用 "SPDY/4",能让访问更流畅。 #google hosts 2015#更新时间:2015年1月13日#持续更新地址:http://www.cnblogs.com/echoyy/ #base services 64.233.168.87 google.com 64.233.168.87 www.google.com 64.233.168.87 m.google.com 64.233.168.87 scholar.google.com 64.233.168.87 translate.google.com 64.233.168.87 books.google.com 64.2...阅读全文

博文 2015-01-16 18:00:01 echoyy

golang web 自定义Handler时候静态资源问题

go 对静态文件的服务写法: http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) 自己玩的时候遇到的问题: 自定义Handler 实现serveHTTP() 方法来动态match路由 路由定义为:map[string]func(http.ResponseWriter, *http.Request) 路径match路由函数 静态文件的请求也会走自己实现的serveHTTP() 方法 会在map中匹配不到路由 导致静态文件(模板中js和css等)导入失败 后来自己看了看源码 找到一个low b的解决办法 在serveHTTP() 判断是否请求静态资源(规则自定义)调用...阅读全文

博文 2015-07-15 17:00:00 北京_

springboot(四)——@EnableConfigurationProperties是如何起作用的你知道吗

前言 用springboot开发的过程中,我们会用到@ConfigurationProperties注解,主要是用来把properties或者yml配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@ConfigurationProperties注解生效。如果只配置@ConfigurationProperties注解,在IOC容器中是获取不到properties配置文件转化的bean的,当然在@ConfigurationProperties加入注解的类上加@Component也可以使交于springboot管理。 举个栗子 第一步:创建一个类TestConfigurationProperties @ConfigurationProper...阅读全文

博文 2019-04-25 16:34:50 stone想静静

指针与引用

点击上方蓝色“Golang来啦”关注我哟加个“星标”,天天 15 分钟,一起学 Go『就要学习 Go 语言』系列 -- 第 27 篇分享好文前几天,有同学在技术交流群里问:指针与引用的区别?在群里没做太多解释,回去找了篇 Steve Francia 大神关于「指针与引用」的文章,翻译过来了,可以点击文末的「阅读原文」查看原版。包括 C、C++ 在内的一些语言支持指针。其他语言包括 C++、Java、Python、Ruby、Perl 和 PHP 都支持引用。从表面上看,引用和指针非常相似,它们都用来让一个变量提供对另一个变量的访问。由于两者都提供了许多相同的功能,所以常常不清楚它们各自的内部机制有什么不同。在本文中,我将说明指针和引用之间的区别。为什么这很重要指针是 Go 语言的核心。大多数程...阅读全文

博文 2019-08-31 21:13:12 Golang来啦

GO语解惑:从源码分析GO程序的入口

起因 最近几天学完了GO语言,但是教材里给出的信息太少,不能满足需要。于是在网上看了许多博文,这就发现其中有许多冲突之处,使人越发迷惑。为了解惑,我深入分析了一下GO语言而小有心得,想把其中的一些分享给大家,希望能提高大家的学习效率。 GO语言的真正入口 GO语言的runtime.Caller方法会提供当前goroutine的栈上的函数调用信息,主要有当前的PC值和调用的文件和行号。若无法获得信息,第四个返回的值为false。当我们在main.main里使用这个函数(本函数为转载): func main() { for skip := 0; ; skip++ { pc, file, line, ok := runtime.Caller(skip) if !ok { break } fmt.P...阅读全文

博文 2014-10-25 09:32:33 sz_Promi

《Go语言四十二章经》第三十三章 Socket网络

《Go语言四十二章经》第三十三章 Socket网络 作者:李骁 ## 33.1 Socket基础知识 tcp/udp、ip构成了网络通信的基石,tcp/ip是面向连接的通信协议,要求建立连接时进行3次握手确保连接已被建立,关闭连接时需要4次通信来保证客户端和服务端都已经关闭,也就是我们常说的三次握手,四次挥手。在通信过程中还有保证数据不丢失,在连接不畅通时还需要进行超时重试等等。 socket就是封装了这一套基于tcp/udp/ip协议细节,提供了一系列套接字接口进行通信。 我们知道Socket有两种:TCP Socket和UDP Socket,TCP和UDP是协议,而要确定一个进程的需要三元组,还需要IP地址和端口。 * IPv4地址 目前的全球因特网所采用的协议族是TCP/IP协议。IP...阅读全文

博文 2018-10-13 20:28:32 roteman

Golang 1.3 sync.Atomic源码解析

上一篇文章我们说到sync.Mutex的源码实现,核心就是使用到了CPU指令CAS,从并发性能上来说atomic的效率是要高于mutex的,毕竟mutex做了不少的其他步骤,而atomic的核心其实就是和处理器密切关系的,通过一两个指令就能完成的原子操作,我们接下来来看看atomic在golang中的一些细节。 通过目录: 64bit_arm.go asm_amd64p32.s asm_linux_arm.s atomic_test.go race.go asm_386.s asm_arm.s asm_netbsd_arm.s doc.go asm_amd64.s asm_freebsd_arm.s atomic_linux_arm_test.go export_linux_arm_test...阅读全文

博文 2014-10-19 09:03:49 毛, 剑

ubuntu 下源码编译安装go

学习一下Go语言。学习之前,首先要搭建一下Go语言的开发环境,这篇文章主要介绍一下搭建环境的过程。 一、安装Go语言依赖包 Go语言部分功能是用C语言开发的,所以安装Go之前需要安装gcc,make等依赖,ubuntu下的安装命令如下: sudo apt-get install bison ed gawk gcc libc6-dev make 二、获取Go源码 成功安装了Go语言的依赖之后,就需要下载Go语言的源码包,方法比较多:可以通过hg拷贝源码,也可以...阅读全文

博文 2015-03-19 09:00:00 nanfenglei23

字符串反转

字符串反转的Golang实现,应该是最简单的了。废话不多说,代码如下: package main func Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) } func main() { a := "Hello, 世界" println(a) println(Reverse(a)) } Golang本身支持计算字符串长度,并且由于支持多值赋值,交换值也是格外的简单。其他语言无非要单独处理一下这两个部分,通过遍历计算出字符串长度,再通过异或或者加法交换值。为了能够处理字符串里...阅读全文

博文 2017-02-09 12:25:13 Bryce

如何阅读一个开源项目的源码?

大约半个月之前,我稍微了解了一些分布式系统的理论知识.但是它们很枯燥,而且有的内容,在我看来都是过时的东西.于是,我想到了,找一个分布式系统的项目的源代码,来了解分布式系统的实现.首先我想到了Kubernetes,但是我担心因为对其了解不多,而不能成功地理解它.所以我选择了先研究Docker. 我们都知道,Docker是用Golang语言写的.而我在阅读Docker的源码之前,对Golang一无所知. 其实我很久之前,就想找一个开源项目的源码来阅读.为此我上网搜了大量的关于如何阅读一个开源项目的源码的文章以及提问和答案.但是,它们都前篇一律.并没有提供什么实质性的帮助. 所以,这次,我稍微了解了一下Golang语言(只是花了大约一上午的时间,照着官网上的Tutorial走了一遍),然后,就撸...阅读全文

博文 2017-05-15 02:41:18 AlstonWilliams

golang 基础(5)函数的返回值

square-gopher.png 在 go 语言中函数支持多个返回值 func div(a, b int) (int, int){ return a /b , a %b } 我们也可以给函数返回值打上标签 q, r func div(a, b int) (q,r int){ return a /b , a %b } 我们可以用两个变量来接受函数返回值 a, b := div(17,3) 如果我们只想使用一个返回值,也就是 a 而不使用 b,向下面这样做会在编译时报错,go 语言是比较严格语言 strict-inspection.jpg a, b := div(17,3) fmt.Println(a) 应该修改为,通过 _ 占位符来忽略掉不使用的变量 a, _ := div(17,3) fm...阅读全文

errors.New() 方法返回的是什么?

```golang package errors // New returns an error that formats as the given text. // New 返回一个给定文本格式的错误。 func New(text string) error { return &errorString{text} } // errorString is a trivial implementation of error. // errorString 是 error 的一个琐碎的实现。 type errorString struct { s string } func (e *errorString) Error() string { r...阅读全文

golang类型转换

golang是强类型语言,在应用过程中类型转换基本都会用到。下面整理一下常用的类型转换,会持续更新。 整形转字符串 fmt.Println(strconv.Itoa(100)) 该方法的源码是: // Itoa is shorthand for FormatInt(i, 10). func Itoa(i int) string { return FormatInt(int64(i), 10) } 可以看出是FormatInt方法的简单实现。 字符串转整形 i, _ := strconv.Atoi("100") fmt.Println(i) 64位整形转字符串 var i int64 i = 0x100 fmt.Println(strconv.FormatInt(i, 10)) FormatI...阅读全文

博文 2015-10-14 13:53:14 陈杰斌

studygolang源码阅读小结(一)

最近待业在家,闲来无事。在博主大神@polaris的指点下,开始探索studygolang的源码。最初定的题目是studygolang源码剖析,想想不合适,牛皮吹的有点大了。还是叫源码阅读小结吧。写一些个人的浅薄理解与看法,可能会有错误,希望大伙儿指正。 ## 第一节 源码的获取与本地化运行 ## 本文的目的在于把源码本地运行起来 ###准备工作### 首先源码地址 https://github.com/studygolang,下载最新代码 在本地要编译并执行源码还需要安装下面3个package,使用go get工具 go get github.com/Go-SQL-Dr...阅读全文

Mirai源码解析

Mirai概述 mirai,2016年一个备受关注的DDoS攻击程序,与传统的僵尸网络不同的是,mirai的控制的僵尸主要是摄像头等嵌入式设备,mirai的出现将一大波安全研究者引入了IoT安全领域。 mirai的事迹主要有: 2016.9.20 ,攻击Brian Krebs个人网站,攻击流量达到665Gbps,据称有150万僵尸发起攻击。 2016.9.21, 攻击法国网络服务商OVH,攻击流量达到1Tbps 2016.9.30,mirai开源 2016.10.21, 攻击Dyn DNS,导致Github、Twitter等美国大半个互联网下线 2016.11.28, 攻击德国电信,mirai出现新变种 mirai已经成为IoT DDOS攻击的母体。 mirai能够控制如此大规模的僵尸网络,...阅读全文

博文 2017-07-12 09:07:07 zengfan

Golang 1.4 net/rpc server源码解析

上一篇文章我们讲了net/rpc中client部分的实现,我本机源码安装路径在/usr/local/go,这net/rpc(golang 1.4版本)涉及到的相关代码主要有: server.go 方法注册: 因为从client我们知道是复用的socket来实现并发调用rpc方法,我们先从方法注册来看源码部分: // Server对象大都是保存方法存根,保证对象互斥的 type Server struct { mu sync.RWMutex // protects the serviceMap serviceMap map[string]*service reqLock sync.Mutex // protects freeReq freeReq *Request respLock sync....阅读全文

博文 2015-03-23 14:54:19 毛, 剑

http代理服务器go代理服务器,内网穿透从未如此简单 easyProxy

# easyProxy 轻量级、较高性能http代理服务器,主要应用与内网穿透。支持多站点配置、客户端与服务端连接中断自动重连,多路传输,大大的提高请求处理速度,go语言编写,无第三方依赖,经过测试内存占用小,普通场景下,仅占用10m内存。 ## 背景 我有一个小程序的需求,但是小程序的数据源必须从内网才能抓取到,但是又苦于内网服务器没有公网ip,所以只能内网穿透了。 用了一段时间ngrok做内网穿透,可能由于功能比较强大,配置起来挺麻烦的,加之开源版有内存的泄漏,很是闹心。 正好最近在看go相关的东西,所以做了一款代理服务器,功能比较简单,用于内网穿透最为合适。 ## 特点 - [x] 支持多站点配置 - [x] 断线自动重连 - [x] 支持多...阅读全文

阿里云Quick BI——让人人都成为分析师

摘要: 在3月29日深圳云栖大会的数据分析与可视化专场中,阿里云产品专家潘炎峰(陌停)对大数据智能分析产品 Quick BI 进行了深入的剖析。大会现场的精彩分享也赢得观众们的一直认可和热烈的反响。 Quick BI诞生于阿里巴巴集团自身对数据分析的需求过程。 在3月29日深圳云栖大会的数据分析与可视化专场中,阿里云产品专家潘炎峰(陌停)对大数据智能分析产品 Quick BI 进行了深入的剖析。大会现场的精彩分享也赢得观众们的一直认可和热烈的反响。 ![图片描述](http://img.blog.csdn.net/20180403125648812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVucWlpbnNpZ2h0/font...阅读全文

ubuntu 安装 gccgo 并编译go

1,安装gccgo apt-get install gccgo 2,gccgo编译go源码 gccgo -o method2 method1.go 结果:method1是go build , method2 是 gccgo 编译的,发现method2比method1小很多啊,差不多三倍。可能是因为go build编译的是Debug,而gccgo 编译的是Release吧。 -rwxr-xr-x 1 root root 1286708 Jan 24 11:10 method1 -rwxr-xr-x 1 root root 40931 Jan 24 11:14 method2 错误: #/usr/bin/ld: cannot find -lgcc_s locate libgcc_s.so.1 l...阅读全文

博文 2015-06-18 09:02:45 leonpengweicn

Golang指针与nil浅析

曾经听说过一句话,编程的本质就是指针和递归。那会刚开始编码,只是这两个的概念有个感性粗浅的认识。最早接触指针,莫过于C语言了,能否理解用好指针也成为一个合格C语言的基本标志。 Golang也提供了指针,但是go不能进行指针运算,因此相对于C也少了很多复杂度。私以为,go之所以提供指针,并不是为了让你更多和内存打交道,而是提供操作数据的基本桥梁。因为go很多调用,往往复制一份对象,例如函数的参数,如果没有指针,有些情况不得不存在很多副本。 内存和变量 编程语言中一般都会有变量。变量存储一些值。通常我们会对变量声明,赋值,和销毁等操作。 想象一下,内存好比一个长长的桌子,桌子有很多连续的抽屉(内存块)。我们可以按照顺序给每一个抽屉从0开始编号(内存地址),这个编号就是抽屉的地址。当我们需要使用抽...阅读全文

博文 2017-07-22 10:06:37 人世间

Go http源码解析(一)

Go web之旅 此篇开始将开启Go web之旅,我将这趟旅途分为三个子旅程: 源码解析 框架解读 中间件使用 所以在这趟旅途中我们将领略源码之雄伟,框架之奇艳,中间件之灵秀。在接下来的时间里我会按照上面的目录依次讲解。 现在开始踏上Go web的旅程。 func firstHandler(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello,world") } func main() { http.HandleFunc("/hello", firstHandler) http.ListenAndServe(":8080", nil) } 在main函数中,http.HandleFunc设置所有对路径为/hell...阅读全文

博文 2015-08-13 10:00:02 zyb228107

goprotobuf基本使用

如果你对Google Protocol Buffer不了解,可以先看下我这篇文章里收集的中文资料:关于Google Protocol Buffer的中文资料 源码地址:https://code.google.com/p/goprotobuf/ 详细的介绍:https://code.google.com/p/goprotobuf/source/browse/README 介绍: This software has two parts: a ‘protocol compiler plugin’ that generates Go source files that, once compiled, can access and manage protocol buffers; and a libr...阅读全文

博文 2014-10-09 16:52:15 Rhino(犀牛)

Weed-FS之Volume数据迁移

【Weed-FS又名叫Seaweed-FS】, 本篇主要是关于数据迁移相关的内容, 更详细的源码相关的请看分布式存储Weed-FS源码分析。 很多刚开始接触 Weed-FS 但是又不熟悉它的用户经常会使用以下的方式启动 weed 集群。 weed master -mdir="/tmp/mdata" -defaultReplication="001" -ip="localhost" -port=9334 weed volume -dir=/tmp/vol1/ -mserver="localhost:9334" -ip="localhost" -port=8081 weed volume -dir=/tmp/vol2/ -mserver="localhost:9334" -ip="localho...阅读全文

博文 2015-02-15 18:31:49 YanyiWu

golang 自定义错误示例

package main import ( "fmt" "time" ) // MyError is an error implementation that includes a time and message. type MyError struct { When time.Time What string } func (e MyError) Error() string { return fmt.Sprintf("%v: %v", e.When, e.What) } func oops() error { return MyError{ time.Date(1989, 3, 15, 22, 30, 0, 0, time.UTC), "the file system has gone...阅读全文

博文 2015-10-24 23:00:08 u011363248

为什么说程序员一定要看 ElasticSearch 源码

前提 人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。在我的电脑本地写了几篇 ElasticSearch 的源码解析了,回过头来想想应该也写一篇为何我会去看它的源码?为什么呢?下面我讲讲自己从接触搜索到现在看源码的过程!第一次接触搜索 搜索,我们首先想到的是搜索引擎:Google、百度,这个就算是接触的最早的了。我自己项目里面接触搜索是大二暑假那时练习的一个项目...阅读全文

博文 2018-12-21 20:34:42 Java高级架构狮

除痛指南 | P2P公司贷前风控福利贴

最近,随着数据宝的壮大和业务多样化 (骄傲脸)宝妹接到了很多case, 宝妹发现了一些相同的烦恼 临近年末,P2P公司生意火爆, 后台提出了各式各样的烦恼或需求 但细心的宝妹还是做了一个针对性的总结; 借此,宝妹还申请到了这次的专场福利, P2P公司-李先生 宝妹,我们在核查客户信息时经常碰到盲点, 被一些假身份、假号码糊弄,求帮助! 您的问题,宝妹已经在后台收到了呢, 对于这位P2P小伙伴的烦恼, 我们为您推荐以下接口 给您一面“照妖镜”助您让假身份无所遁形, 精准辨别借贷身份真实性。 ![1..jpg](http://studygolang.qiniudn.com/161124/f46f67d68ff96fab7cd54524a96379fb...阅读全文

【求助】如何编译MIPS处理器的GCCGO工具链。

RT: go基本已经通吃了所有主流处理器。MIPS64的处理器也已经支持了,但是唯独MIPS32的处理器不支持。 目前有个需求就是在MIPS处理器上也能用上GO。目前知道的只有GCCGO了。 老版本的gccgo可以编译成功,gcc 4.8.3这个我就成功了 但是新版本我基本上试过,所有的办法去编译mips的gccgo 5.X,6.X版本。 1、直接从GCC源码编译。 2、crosstool-ng工具编译。 3、buildroot工具编译。 4、通过openwrt编译工具编译 都失败了。 工具基本能编译出来(gccgo,go1等),但是库编译就报错,编译不通过。 基本是gcc\libffi\src\mips\o32.s这个文件报错。 ...阅读全文

Martini源码剖析

martini是非常优雅的Go Web框架。他基于依赖注入的思想,仿照Sinatra的路由设计,参考Express的中间件设计,而且核心微小,扩展方便,非常值得学习。但是由于本身API设计简洁,使很多细节无法从代码理解。所以,我写一点笔记记录martini的工作方式。 Martini核心 我们从最简单的官方实例入手: package main import "github.com/go-martini/martini" func main() { m := martini.Classic() m.Get("/", func() string { return "Hello world!" }) m.Run() } martini.Martini是自带的核心结构,负责完成依赖注入和调用的过程。...阅读全文

博文 2014-11-06 13:56:46 傅小黑

Golang:Golang生成动态库及调用

版权声明:博客地址:blog.csdn.net/x356982611,未经允许不得转载,不得转载,不得转载 https://blog.csdn.net/x356982611/article/details/80701253 简介 目前go动态库的生产只支持Linux,Windows下会报这样的错误,`-buildmode=plugin not supported on windows/amd64` CODE plugin.so package main import ( "fmt" ) func DCall(){ fmt.Println("plugin.so was called") } func DCallWithParam(msg string){ fmt.Println("参数内容为:...阅读全文

博文 2018-12-24 18:31:34 x356982611

大话图解gin源码

前言 最近在网上搜了一下,对于gin框架用的人还是比较多的,我自己之前也在使用,但是对于源码解析这块,我没有看到自己想看到的那种从框架入手的解析图,所以嘿嘿嘿,我的机会就来了,今天就带来最完整的gin源码图解。希望通过这篇博客你也能自己学会拆轮子。 PS:本文建立在你已经能熟练使用gin的基础之上,如果还没用过可以去官网看一下: https://gin-gonic.com/zh-cn/docs/ 然后gin是对golang的http包的封装,所以最好对http包也要有了解。 整体分析逻辑 先来说明一下我整体拆解的逻辑,对于一个框架,我喜欢从下面几个方面去入手拆解: 启动方式 如何使用 实现与特点 针对于gin,我也将从这几个方面去入手,就会得到下面几个问题,带着问题看源码是必备条件。 首先启...阅读全文

博文 2019-08-26 15:33:12 LinkinStar

Go语言工具go get的一点问题

使用go get下载github.com等网站的代码时,有时候会发现下载的代码与网站上的代码不一致。如seelog库 查看了go 1.1.2源码中get.go,发现下载代码时会首先查看命名为"go1"的tag。如果有,则下载此tag的代码,而非master分支的当前代码 解决方法(简单一点的): 到$GOPATH/src/第三方库源代码目录,执行git checkout master(或其他分支),切换分支; 执行go get <第三方库>命令,重新编译pkg中.a库文件; 重新go build 阅读全文

博文 2014-10-04 19:26:42 hujunfei

优酷视频MP4修复工具 youkuMP4Patcher

# 优酷视频MP4文件修复工具 **场景**:春节期间帮老人家从优酷上缓存了一些戏曲视频,结果后来从手机导出之后使用其它播放器无法播放。作为技术行业的从业者怎能忍?:D 经过研究写了这么个工具,请自行编译。 **探索**:优酷对MP4源文件进行了简单的加密处理(其实谈不上加密,他们只是对MP4文件格式做了点小手脚),导致只能在优酷播放器里播放; 1. 修复从手机端导出的缓存优酷MP4文件只能在优酷播放器播放的问题; 2. 修复后的MP4文件可以在任意播放器里播放...阅读全文

go语言实现的http和https抓包工具

[gomitmproxy](https://github.com/sheepbao/gomitmproxy)是想用golang语言实现的[mitmproxy](https://mitmproxy.org/),主要实现http代理,目前实现了http代理和https抓包功能,差距甚远,加油。 ## 可以用来干嘛? * http代理 * http和https抓包 * 科学上网 ## 安装使用 ```bash git clone https://github.com/sheepbao/gomitmproxy.git cd gomitmproxy go build ``` ## 例子 * http代理 ```bas...阅读全文

Go-ini文件解析

官网 https://github.com/larspensjo/config 示例代码 package main import ( "fmt" "strconv" "github.com/robfig/config" ) type Student struct { name string age int } const ( CFG_FIE_NAME = "students.cfg" SECTION1 = "Student 1" SECTION2 = "Section 2" OPTION_NAME = "Name" OPTION_AGE = "Age" ) func foo() { c := config.NewDefault() tom := Student{"Tom", 5} jerry...阅读全文

博文 2016-11-24 11:00:01 u013344915

第一个实用程序产生了

家里电脑diy了监控,用ffserver+ffmgeg。在外地通过http://ip:8090/test1.mpg访问家里监控。 有时候ip会变化,所以用go写了一个心跳程序。 源码: package main import "time" import "net/http" func main() { for { http.Get("http://www.myweb.com/ip.php") time.Sleep(600 * time.Second) } } 好简单!只比hello world难一点点,呵呵 不知道这个程序连续运行过程中是否会出现问题?有没有要释放的资源?连续运行几天内存是否会不断上升?偶尔联网失败是...阅读全文

主题 2013-05-01 13:21:08 keke

服务计算 - 1 VirtualBox配置私有云

VirtualBox配置私有云 初始准备 AMD处理器电脑需要开启AMD-V Intel处理器电脑需要开启Intel-VT 下载VirtualBox并安装 下载CentOs7(可以选择普通版也可以选择最小ISO) 创建Linux虚拟机 配置内网互联用的网卡 新建网卡: VirtualBox菜单 :管理 -> 主机网络管理器,创建一块虚拟网卡 配置参数: 网址分配:192.168.100.1/24,在主机 windows 命令行窗口输入 ipconfig 就可以看到 VirtualBox Host-Only Network #?: 的网卡 安装CentOs 新建系统: 分配资源:分配内存和处理器,建议分配1/3左右的资源给虚拟机,虚拟机硬盘最好大于30GB。 第一块网卡必须是 NAT;第二块网...阅读全文

基于go语言的心跳响应

我们在使用tcp ip 通讯的时候,都需要使用心跳机制来判断服务器与客户端的连接状态,如果服务器的心跳超时等,会做出重新连接等机制, 基于这种问题,我今天给大家推荐了一个基于go语言的心跳响应机制,废话不多说直接上code: 源码在这儿 # heartbeat The heartbeat timer Heartbeat简介 Heartbeat是一个基于Go的多任务的定时响应回调 ## 安装 go get -u github.com/noaway/heartbeat Heartbeat的简单使用 创建任务 name, spec := "12138", 5 ht, err := heartbeat.NewTast(name, spec) if err != nil { fmt.Println(e...阅读全文

博文 2016-04-15 01:00:06 TF12138

Go 语言的 parse 解析器

解析器起始很简单,但是用处很大。当我们解析 XML文件,json文件,对源代码进行静态分析都是需要解析器。 Go 语言的 parser 是一个十分基础的解析器,采用递归下降语法进行解析。 接下来,我就进行逐一的分析!(待完成) $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for...阅读全文

博文 2015-06-17 23:00:46 xiaorenwuzyh

慕课网Golang 讲师

慕课网是国内最大垂直类IT教育平台,目前有用户1100W+。 #用户基础好,流量高、持续分成,分成丰厚,没有时间地点限制。 #职位要求# 1.基础扎实,熟悉常用结构和算法。三年以上Golang使用经验。 2.精通Golang设计原理、源码分析和使用 3.有使用GO语言开发高并发、高可靠、可扩展的后端程序经验 4.热爱分享,逻辑清晰,语言表达能力强,有技术博客者优先。 contact:lirui@imooc.com QQ:154699251 慕课网BD经理 Gig...阅读全文

GO语解惑:从源码分析GO程序的入口(续:_rt0_go)

书接上回。现在我们知道_rt0_go这个汇编过程是GO语言的真正入口并做了一些初始化工作,本文来大略的过一下这个过程和它调用的几个runtime里的函数。 Windwos Live Writer写的文章,编码有问题,对不住各位:我不想改。   参数 MOVL    argc+0(FP), AX MOVL    argv+4(FP), BX SUBL    $128, SP        // plenty of scratch ANDL    $~15, SP MOVL  &...阅读全文

博文 2014-10-04 19:26:04 sz_Promi

性能测试:Java 与 Golang 的对比

起因: 作者本人我在知乎上看到很多人都在讨论这问题 所以想做下纳秒级运算的测试 前置声明: 双方都在 同一台电脑下 进行实验 双方都在 程序内部 进行时间计算 实验中有一方 需要 读取文件 进行 解释执行 公平起见,不借助于 第三方工具 进行 性能测试 双方 编译器版本 为 当前当前最新版(2019-10-21) Java 编译器版本:javac 13.0.1 Golang 编译器版本:go version go1.13.3 windows/amd64 双方 源码保证输出一致,并且 意义一致 双方都 进行编译,并使用 相应的执行方法 双方以 100次结果 的 消耗时间 取 平均值的整数 为 对比值 Java: 源码: class main { public static void main(...阅读全文

博文 2019-10-21 06:32:47 aside section ._1OhGeD

Google IP 最新地址

文地址:https://ideas.spkcn.com/technology/250.html 2015年 目前最新可以直接访问google的IP91.213.30.152173.194.77.142173.194.77.143173.194.77.152173.194.77.154173.194.77.163 查询google ip 地址范围nslookup -q=TXT _netblocks.google.com 114.114.114.114nslookup -q=TXT _netblocks2.google.com 114.114.114.114nslookup -q=TXT _netblocks3.google.com 114.114.114.114 IPV4:216.239.32...阅读全文

博文 2015-01-22 13:00:02 apexchu

Go语言中文网源码studygolang

[Go语言中文网 - Golang中文社区](https://studygolang.com/) 源码 网站上线时间:2013-03-15 14:38:09 目前在线运行的是 Master。欢迎有兴趣的 gopher 们参与进来,一起构建一个完善的 Go 语言中文网,Go 语言爱好者的学习家园,参与方式请参考:[https://studygolang.com/topics/4092](https://studygolang.com/topics/4092) 首先你都需要下载代码,因为代码中有很多静态资源。可以[点击这里下载](https://github.com/studygolang/studygolang/archive/master.zip) 或 `git clone https...阅读全文