go 获取操作系统纳秒级时间
代码如下: package main import ( "fmt" "time" ) func main(){ fmt.Println(time.Now().UnixNano()) } 环境: 本地Linux和远程Linux版本相同 本地编译执行结果可以获取到纳秒级别:例如:1519830943640340440 但是当拷贝到远程服务器时,直接结果为:1519831600789612000 如果在远程服务器重新编译,则可以获取纳秒级数据? 神马原因...阅读全文
代码如下: package main import ( "fmt" "time" ) func main(){ fmt.Println(time.Now().UnixNano()) } 环境: 本地Linux和远程Linux版本相同 本地编译执行结果可以获取到纳秒级别:例如:1519830943640340440 但是当拷贝到远程服务器时,直接结果为:1519831600789612000 如果在远程服务器重新编译,则可以获取纳秒级数据? 神马原因...阅读全文
# easyProxy    easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**代理服务器。目前支持**tcp、udp流量转发**,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还**支持内网http代理、内网socks5代理**,可实现...阅读全文
我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 `os.Stdin` 读取输入,最简单的办法是使用 `fmt` 包提供的 Scan 和 Sscan 开头的函数。请看以下程序: ```go // 从控制台读取输入: package main import "fmt" var ( firstName, lastName, s string i int f float32 input = "56.12 / 5212 / Go" format = "%f / %d / %s" ) func main() { fmt.Println("Please enter your full name: ") fmt....阅读全文
本文由 伯乐在线 - JackalHu 翻译,toolate 校稿。未经许可,禁止转载!英文出处:fogleman。欢迎加入翻译小组。 译注:Family Computer(简称 FC)是任天堂(Nintendo)公司发行的家用游戏主机。日版 FC 机身以红色和白色为主,因此在华人圈中又有“红白机”的俗称;欧美版 FC 在欧美则称 Nintendo Entertainment System(简称 NES)。 最近我编写了一个 FC 模拟器。制作这样一个模拟器主要是出于兴趣以及为了从中学习 FC 的工作原理。在这个过程中我学到了很多有趣的知识,于是写下这篇文章同诸位分享我所学到的内容。由于相关的文档已经有很多了,所以这里我只打算讲述一些有趣的特性。请注意,接下来都将是些技术方面的内容。 图1 ...阅读全文
如果你写过某些 TCP socket 代码,你可能会疑问:如果网线被拨掉或者远程主机崩溃了我的TCP连接会怎样? 简短的答案是:一点影响都没有。这种情况下连接的结束远程主机是不会发送FIN数据包的,并且本地系统不能检测连接是否已中断。所以需要作为程序员的你来解决这种情况。 --zxp翻译于 1 个月 前 0人顶 顶 翻译的不错哦! GO语言为你提供了解决这个问题的几种方法。首选的方法可能是 net.Conn 接口中的SetReadDeadline方法。假设你的连接在以一种特定的间隔来接收数据,你可以简单地把读取超时当作一个io.EOF错误并Close这个连接。很多现有的TCP协议都支持处理错误的这种方法,它们通过定义某种心跳机制或 service health 1,在端点间以特定间隔发送PI...阅读全文
func FileServer(root FileSystem) Handler 就是返回一个handler,用作http.handle这个函数的参数。 FileSystem是一个接口 type FileSystem interface{ Open(name string)(File,error) } 说白了文件服务器就是要这样一个接口作为静态文件服务器的根目录。 一般用这个做一个前缀转换 func StripPrefix(prefix string, h Handler) Handler package main import ( "net/http" ) func main() { // To serve a directory on disk (/tmp) under an alter...阅读全文
Bret Victor 的 Inventing on principle 是我看到过的最令人激动和震撼的演示,没有之一。虽然这位前苹果公司的UI大牛早在2012年就作出的这次演示,但他的影响一直没有减弱,编写程序过程中的任何变化,应该直接的产生反馈,让程序猿能够看到结果,或者说创造者需要对自己的创造的东西有实时的反馈。 之前一直在使用Python,非常喜欢IPythonn Notebook,使用IPython Notenook来快速的完成一些原型非常的方便。现在由于项目的需要,要开始使用Go语言,我就在想,有没有可以使用Go的IPython环境呢?知乎上还有一个相关的帖子,可惜上面并没有给出有效的回答。 我做了些小功课,结果并不完美,这里分享给大家。 官方版 Go Playground 开始...阅读全文
我用net/http写了一个文件服务器,代码很简单,可以运行,代码如下: package main import "net/http" func main(){ http.Handle("/", http.FileServer(http.Dir("../template"))) http.ListenAndServe(":8888", nil) } 然后在template目录下的任何文件和目录在ie中都可以访问 然后我用net/http+github.com/gorilla/mux改写了上述代码,如下: package main import "net/http" import "github.com/go...阅读全文
摘要Acme是一个文本编辑器。一说到文本编辑器,大家最容易想到的是Vim和Emacs之争。可是和Acme比起来,Vim和Emacs是同宗,都充分利用和依赖键盘操作;而Acme充分利用鼠标:像Emacs的组合键一样组合鼠标按键,又称“chord”。Vim和Emacs减少手在键盘和鼠标之间的移动,Acme方便迅速直接地定位,不需要按着箭头按键不放来移动光标。听说过Acme的人比较少。但是说起它的作者Rob Pike大家就知道了。Rob Pike是Unix的主要设计者,也是Unix的后继Plan 9的设计者,还是Go语言的设计者。Acme是Plan 9上的标准IDE,也是Go语言的主要设计者Rob Pike、Russ Cox等每天使用的编辑器。Russ Cox专门把Acme以及所有Plan 9的用...阅读全文
package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() fmt.Println(r.Form) fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k, v := range r.Form { fmt.Println("key:", k) fmt.Println("val:", strings.Join(v, "")) } fmt.Fp...阅读全文
解决golang.org不能访问的问题 golang.org被屏蔽了,直接访问不了,解决办法如下: 在 http://ping.eu/ping/ 上ping一下golang.org,获取到IP 然后,在C:\Windows\System32\drivers\etc\hosts中,添加ip和golang.org的对应关系,添加如下一行: 173.194.70.141 golang.org 重新启动下浏览器,就可访问golang.org了...阅读全文
想问一个通过sock缓冲器发送数据的问题 rw := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) binary.Write(rw, binary.LittleEndian, bags) rw.Flush() conn是socket 连接 连续这样调用Fiush()方法可以把消息发送回去,但是多次访问之后每访问一下内存就会涨,怎么能把这个rw关闭呢并释放内存呢? 谢...阅读全文
# easyProxy 轻量级、较高性能http代理服务器,主要应用与内网穿透。支持多站点配置、客户端与服务端连接中断自动重连,多路传输,大大的提高请求处理速度,go语言编写,无第三方依赖,经过测试内存占用小,普通场景下,仅占用10m内存。 ## 背景 我有一个小程序的需求,但是小程序的数据源必须从内网才能抓取到,但是又苦于内网服务器没有公网ip,所以只能内网穿透了。 用了一段时间ngrok做内网穿透,可能由于功能比较强大,配置起来挺麻烦的,加之开源版有内存的泄漏,很是闹心。 正好最近在看go相关的东西,所以做了一款代理服务器,功能比较简单,用于内网穿透最为合适。 ## 特点 - [x] 支持多站点配置 - [x] 断线自动重连 - [x] 支持多...阅读全文
先看反向代理库 type ReverseProxy struct { // Director must be a function which modifies // the request into a new request to be sent // using Transport. Its response is then copied // back to the original client unmodified. Director func(*http.Request) // The transport used to perform proxy requests. // If nil, http.DefaultTransport is used. Transport htt...阅读全文
Gor 是用 Go 编写的简单 HTTP 流量复制工具,主要是为了从生产服务器返回流量到开发环境。使用 Gor 可以在实际的用户会话中测试代码。 Gor 基础工作流:  从端口捕获流量: # Run on servers where you want to catch traffic. You can run it on each `web` machine. sudo gor --input-raw :80 --output-tcp replay.local:28020 # Replay server (rep...阅读全文
云服务器越来越普及,很多企业及个人都纷纷上云,从传统的虚拟主机或者托管服务器上把网站和应用迁移到腾讯云、阿里云、百度云等这些云服务器上。云服务器相比传统服务器的优势有很多,比如安全性、性价比、稳定性、可用性、便捷性等等各方面,大家可以百度自己了解,我就不在这里多说了。虽然云服务器就这么多的优点,但真正会用,能用好的站长朋友们还不是很多,今天,就由提供阿里云、腾讯云1折秒杀活动的“尊托云数-9i0i.com”带着新手站长们,来通过搭建wordpress博客来学习云服务器的详细使用方法:首先,我们从云服务器的选购开始,建议选择的云服务商:阿里云、腾讯云、华为云、百度云,因为这些大的品牌能让你免除后顾之忧,持续经营你的网站,如下图:在选购云服务器时,有区域、CPU、内存、带宽、系统镜像这几个要素需...阅读全文
Go编程语言 Go编程语言是一个开源项目,可以提高程序员的工作效率。 Go富有表现力、简洁、干净、高效,它的并发机制使编写能够充分利用多核和联网机器的程序变得容易,而其新颖的类型系统可实现灵活的模块化程序构建。Go可以快速编译成机器码,但它具有垃圾收集的便利和运行时反射的功能,它是一种快速、静态类型的编译语言,感觉就像一种动态类型的解释语言。 安装Go 下载和安装Go编译器、工具和库的说明。 入门 学习Go编程语言 Go编写的tour Go的交互式介绍分为三个部分,第一部分涵盖基本语法和数据结构;第二部分讨论方法和接口;第三部分介绍了Go的并发原语;每个部分都以一些练习结束,这样你就可以练习所学的内容,你可以在线参阅或在本地安装,使用如下: $ go get golang.org/x/tou...阅读全文
前提 人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。在我的电脑本地写了几篇 ElasticSearch 的源码解析了,回过头来想想应该也写一篇为何我会去看它的源码?为什么呢?下面我讲讲自己从接触搜索到现在看源码的过程!第一次接触搜索 搜索,我们首先想到的是搜索引擎:Google、百度,这个就算是接触的最早的了。我自己项目里面接触搜索是大二暑假那时练习的一个项目...阅读全文
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这个文件报错。 ...阅读全文
点击上方“公众号” 可以订阅哦!通过我们前面的系列文章,大家对Cache的组织形式和特性都有了一定的了解。有个问题不知道大家思考过没有:为什么Cache分这么多级,而是不是直接把L1或者L2增大了事?我们为什么不能直接做出个Cache奇大的CPU呢?下面我们来一一分析。为什么Cache要分级? 前文(L1,L2,L3 Cache究竟在哪里?)中我们提到CPU中有L1、L2、L3甚至L4级Cache。为什么搞这么麻烦,制程提高,可以放更多晶体管了,CPU厂商直接把L1和L2加倍不就好了吗?要回答这个问题,首先我们要知道L1和L2 Cache的区别,它们的构造一样吗?答案是否定的,虽然它们都是由CAM(Content Addressable Memory )为主体的tag和SRAM组成的,但是区...阅读全文
我之所以一意孤行要学go,那是有原因的!就像意外怀孕一样,再怎么意外,那都是有原因的。 我来ThePlant面试时,老板和菲哥都很自豪的声称,ThePlant是工程师文化主导的公司。作为一个初出茅庐的文科生,当时我完全不知道他们在自high什么。工作一段时间之后,姐算是明白了什么是“工程师文化主导的公司”。所谓的工程师文化主导,就是完全由程序员说了算呗! 这里的程序员都是皇阿玛,四阿哥,我顶多就算个嬷嬷吧。我必须好好吐槽一下他们罄竹难书的滔天罪行,呵呵。。。呵呵呵。。。。。。 先说做产品吧,那必须geek!看看Qortex的神一样的编辑器你就知道。最初的版本只支持makdown(当然还支持纯文本!),你叫我一个弱女子怎么用!!!后来我讲道理,摆事实,据理力争,才教会了这群奇葩怎样...阅读全文
mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好...阅读全文
大家好,在学习go中, 想实现一个简单的下载功能, 即 文件在go服务器上, html 点击下载, 服务器 读取本地文件, 并且返回给浏览器,弹出下载框,选择下载。 找了很久都是实现上传和 服务器远程url (链接)再回给浏览器, 美怎么 看到go直接读取本地文件,然后直接给浏览器下载。希望大家能提个建议, 非常感谢^....阅读全文
# 优酷视频MP4文件修复工具 **场景**:春节期间帮老人家从优酷上缓存了一些戏曲视频,结果后来从手机导出之后使用其它播放器无法播放。作为技术行业的从业者怎能忍?:D 经过研究写了这么个工具,请自行编译。 **探索**:优酷对MP4源文件进行了简单的加密处理(其实谈不上加密,他们只是对MP4文件格式做了点小手脚),导致只能在优酷播放器里播放; 1. 修复从手机端导出的缓存优酷MP4文件只能在优酷播放器播放的问题; 2. 修复后的MP4文件可以在任意播放器里播放...阅读全文
网站不能根据来访的ip来确定来访者的身份,ip加端口号也不行.一般都是通过用户名密码来确定用户身份的,但用户也不能每次访问网页时都手动输入一次用户名和密码啊,这样太累了. 一个最简单的想法就是让浏览器帮我们输入,但是http协议本身没有夹带用户名密码的功能,而且有时我们的需求又不只是用户名和密码这么简单,比如说我们还想在浏览器和网页服务器之间传递用户的id,上次访问网站的时间等,每个网站的要求都不一样,所谓众口难调. 现在的做法是,浏览器允许网页服务器在浏览器里存一小段数据,什么数据都行,你自己的格式自己去解析就好了.具体的做法是,浏览器第一次访问服务器时,服务器应答中就会包含需要浏览器请求的数据,浏览器收到服务器的应答,并把数据保存起来.当浏览器再次访问服务器时,浏览器就在请求里包含这段数...阅读全文
GO语言跟它名字一样是门比较装逼的语言,鲜有菜鸟初学者教程,所以没有语言基础的话,理解起来会有点困难。闲来没事整理了一个GO零基础入门资料。 安装与简介 因为国内老被墙,被墙之后请在网上直接下载,下载链接 开发环境编辑器 1.Sublime,支持多标签,自动排版,高亮,简单的填补,简单的SHELL直接运行等。 《Ubuntu下使用Sublime Text 2搭建Go开发环境》 《Sublime Text 2搭建Go开发环境(Windows)》 2.vim + gocode 《Go的Vim的高亮和自动补齐》 3.LiteIDE:只用于GO环境开发的编辑器 4.免费的golang在线开发环境:由实验楼与StudyGolang合作提供的在线实验室,可直接通过浏览器访问进行Go语言的学习与编程。 一...阅读全文
*由 [Florin Pățan](https://blog.jetbrains.com/go/author/florin-patanjetbrains-com/) 发布于 2019 年 2 月 6 日* 调试是任何一个现代应用的生命周期中的必要部分。 对于经常使用调试器的开发者而言,调试不仅对于发现 bug 很有用,也有助于查看和理解他们即将用到的新代码库中发生了什么,或是学习一门新的语言到底是怎么回事。 一般来说,大家比较喜欢的调试风格有两种: * 打印语句:在代码执行到各个步骤时进行记录。 * 使用类似 [Delve](https://github.com/go-delve/delve) 的调试器,或直接使用 IDE:这能让我们在程序执行过程中有更多的控制力,提供更多可查看代码的功能,...阅读全文
引用:http://developer.51cto.com/art/201203/326428.htm 谷歌今天发布了Go语言的首个正式版本,谷歌称,这是该语言发展过程中的一个重要的里程碑。 Go 语言最初由Rob Pike等谷歌工程师在2007年9月启动设计工作,在2009年11月正式对外发布。Go将动态语言易于编写的特性和静态语言的高效性相结合,具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计,同时在语言中包含并发构造体,以帮助开发者创建并行任务。Go开发团队曾表示,编译完成的Go程序运行速度接近C语言实现的程序。 在3月中旬,谷歌曾发布Go 1的候选版本,并称已经非常接近正式版了。而此次发布的正式版在候选版的基础上改进了部分功能,修复了一些bu...阅读全文
Go1.9 出来后 6 个多月的时间,Go1.10 就被[发布](https://blog.golang.org/go1.10)。新版本带来大大小小的变化([发行说明](https://golang.org/doc/go1.10)),但是我想谈谈有关 `net/http` 包的改变。1.10 版本支持在 HTTPS([commit](https://github.com/hyangah/go/commit/ab0372d91c17ca97a8258670beadadc6601d0da2)) 上的代理,而在原来它只能通过使用普通的(未加密)HTTP 来和代理进行沟通。接下来让我们来看看它是否真的可以工作。 ## Server 为了验证这一改变,首先请用 golang 启动一个简单的 HTTP(...阅读全文
翻译来源:http://golang.org/s/using-guruGuru 是一个导航go 代码的编辑器集成工具这篇文章将展示了我们怎么使用Guru。在开发golang项目的过程中我们希望我们的编辑器回答我们各种各样的问题。例如: 标识符(名字,对于变量、常量、函数、语句块)在哪里申明? 所有对此申明的引用在哪里? 此表达式的方法变量是什么? 这个包的api 是什么? 哪些具体类型实现此接口? 动态调用可能的调用者是什么? 方法可能的调用这是什么? 在此channel 上发送的值可能在哪里接收?除了它带来了一些在任何ide中没有发现的高级静态分析功能,它还带来了很多重量级ide才能带给你的令人兴奋的效果。GopherCon 2014 talk on the Go Guru (https:...阅读全文
需求 有一项重复性工作,就是每天打开监控系统输入一些内容查询结果并截图然后检查发送日报,所以就在想能不能使用go来完成部分工作,查找之后就发现了chromedp,使用起来之后还是发现不少的坑。 安装 因为安装的时候一些包要翻墙,所以使用gopm下载包,具体可以百度gopm gopm get github.com/chromedp/chromedp 报错 刚下载完跑demo,这里提示这几行。 demo 地址https://raw.githubusercontent.com/chromedp/examples/master/click/main.go image.png 我的解决方法是进入handler.go把这几个类型注释掉,如果还有其他好的办法可以告诉我 解决掉上面几行之后,继续跑官方的de...阅读全文
解析器起始很简单,但是用处很大。当我们解析 XML文件,json文件,对源代码进行静态分析都是需要解析器。 Go 语言的 parser 是一个十分基础的解析器,采用递归下降语法进行解析。 接下来,我就进行逐一的分析!(待完成) $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('
了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego.Controller } func (this *MainController) Get() { this.Ctx.WriteString("hello world") } func main() { beego.Router("/", &MainController{}) beego.Run() } beego.Controller 提供所有的restful方法,Get,Post,Delete等方法,通过重写这些方法,已响应客户端不同的请求方式。 用过Node.js的同学,肯定觉得很熟悉,拿最...阅读全文
Go 1.4 Beta 1 发布,此版本是 Go 1.4 的 beta 版本,现已提供下载,反馈bug请前往这里。 此版本仅包括一个小的编程语言修改;对编译器做了重大修改,向后兼容 for-range loop 形式。此版本关键点在实现功能,改进垃圾收集器和为下个版本完整的收集器打好基础。 此版本还添加了新的工具,支持使用 go 命令生成构建时源代码。此版本支持 Android 和 Native Client(NaCl)的 ARM 处理器和 Plan 9 的 AMD64。 Go 1.4 最终版本计划在 2014 年 12 月 1 日发布,更多更新内容请看发行说明...阅读全文
go语言实现http服务器时如果处理静态文件,需要用到http.ServeFile: func ServeFile(w ResponseWriter, r *Request, name string) { dir, file := filepath.Split(name) serveFile(w, r, Dir(dir), file, false)} 首先根据请求路径r.URL.Path判断是否包含静态文件目录,如果存在则直接返回: img_dir := "/home/qinpeng" if strings.HasPrefix(r.URL.Path,"/img"){ file := img_dir + r.URL.Path[len("/img"):] f,err := os.Open(fil...阅读全文
最近在论坛发现了一个好网站,https://bytelang.com 平时用来逛论坛,写代码交流再方便不过了,每次都要打开保存再运行,给别人看代码还要贴代码,十分麻烦。为了给码友展示一段代码对方还要在粘贴复制运行调试,糟糕透了。昨天@香协理i给我说了这个,简直太好用了。 支持多种语言在线运行查看结果,提供常用的类库包。重要的是像我这种vim重度使用者,别的编辑器按键映射用起来特别别扭,也是支持vim编辑模式的。常用的代码配色,字体大小,字体类型,云端同步编辑器配置。 代码写好,立即就能看到结果,免去了打开ide的麻烦 要把代码发送给别人,也十分方便,获取分享链接对方打开就能查看,talk is cheap show me the code 我的小例子~嘿嘿 ...阅读全文
# Zinx [](LICENSE) [](https://gitter.im/zinx_go/community) [](https://www.jianshu.com/p/23d07c0a28e5) [是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES 1.0针对固定管线硬件的,OpenGL ES 2.0针对可编程管线硬件,可以认为完全是两套API。最新3.0版本也在Android4.3得到了支持,从源码上看完全扩展自2.0。 OpenGL负责把三维空间中的对象通过投影、光栅化转换为二维图像,然后呈现到屏幕上。 管线这个术语描述了OpenGL渲染的整个过程。openGL采用cs模型:c是cp...阅读全文
FreeCache 是一个 Go 语言的缓存库,无额外的 GC 负荷。数百万对象的垃圾收集延迟仅在数百毫秒。 特性: * 可存储数以百万计条目 * 零垃圾收集负荷 * 高并发而且线程安全的访问 * 纯 Go 语言实现 * 支持对象失效 * 近乎 LRU 的算法 * 严格限制内存使用 * 提供一个测试用的服务器,支持一些基本 Redis 命令 示例代码:
cacheSize := 1024*1024 cache := freecache.NewCache(cacheSize) key := []byte("abc") val := []byt...阅读全文
热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务。 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socket 描述符给子进程 子进程接收并监听父进程传递的 socket 描述符 在子进程启动成功之后,父进程停止接收新连接,同时等待旧连接处理完成(或超时) 父进程退出,热重启完成 实现 package main import ( "context" "errors" "flag" "log" "net" "net/http" "os" "os/exec" "os/signal" "syscall" "time" ) var ( server *http.Server listener net.List...阅读全文
摘要 Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言-简介 Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。 Go是谷歌2009发布的第二款编程语言.2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言. 北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。 谷歌资深软件工 程...阅读全文
nvm-windows 是 Windows 下的 Node.js 版本管理工具,有点意思的是使用 Go 编写的。   const ( ICMP_ECHO_REQUEST = 8 ICMP_ECHO_REPLY = 0 ) // Ping Request func makePingRequest(id, seq, pktlen int, filler []byte) []byte { p := make([]byte, pktlen) copy(p[8:], bytes.Repeat(filler, (pktlen-8)/len(filler)+1)) p[0] = ICMP_ECHO_REQUEST // type p[1] = 0 // code p[2] = 0 // cksum p[3] = 0 // ...阅读全文
Cocos-BCX Golang SDK 语言上线,支持无缝高效开发操作近日,Cocos-BCX 测试网 Golang SDK 上线,支持开发者使用 Golang 语言在 Cocos-BCX 链上进行无缝,快速,高效的开发操作。Golang 是由 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言,正式推出于2009年11月,成为开放源代码项目,并在2016年被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 在开发过程中,Golang 语言擅长于处理大并发、处理数据、计算能力,适合用于区块链开发、服务端开发等情景。目前,Cocos-BCX 战略合作伙伴比特派,正在使用 Golang 语言在 ...阅读全文
用beego写了个小工具..ab压测速度还不错..但应用中经常发生进程退出(无任何提示), 后经证实是同事用苹果浏览器访问, 网络不怎么好..然后就猛点刷新然后程序就退出了..再折腾之...发现没有redirect(302,url)就没那么容易退..但刷得猛还是会退出....阅读全文
昨日在ubuntu系统中,安装了golang的环境,今天在安装一个比较好用的编辑器来写代码,会提高很大的效率。 首先从官网下载goland https://www.jetbrains.com/go/... 解压安装 tar -zxvf xxx.tar.gzsudo mv xxx /opt/goland 建立别名,快速启动 - sudo vim ~/.bashrc 添加 alias goland='nohup sh /opt/goland/bin/goland.sh >/dev/null >/dev/null 2>&1 &' 保存 source ~/.bashrc 在命令行直接输入goland就可以启动啦~ 破解软件 http://idea.lanyus.com/ 1、打开这个网址,复制里边的...阅读全文
在Web开发的世界里除了PHP之外还有很多编程语言可供挑选,主流的有Node.js、Python、Java,.NET、Golang,Ruby。其中使用最多的是PHP,特别是在中小企业、互联网创业公司。 在说编程语言之前,我们先了解一下网站是如何在浏览器打开的: 359b033b5bb5c9ea6434d6a7d339b6003bf3b3ab.png 1. 输入地址 向浏览器输入一个网址 2. DNS解析 请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请...阅读全文
合肥泰壤,招聘Golang游戏服务器端开发,公司从事手游开发,已经盈利,具备手游开发及运营经验。 待遇:基本工资10K以上,具体视乎情况面议,项目分成(20%项目收入),股权等。 有意者请投blcc0994@foxmail.co...阅读全文