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

goalng 如何利用mux写一个文件服务器

我用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...阅读全文

golang postgresql数据库驱动

今天周末,即使立冬已过,阳光依然独好,闲着没事做,coding。 一直用bm。。。/pq的SQL驱动,忘记叫啥了,一直没问题,今天看到地址转到了lib/pq,重新获取了驱动,继续使用,有如下一段代码, func DB() (db *sql.DB) { db, err := sql.Open("postgres", "user=postgres password=123456 dbname=test sslmode=verify-full") if err != nil { Fatal("数据库连接失败" + err.Error()) } return db } 编译,运行,不知道搞毛,db一直为空,搞了好久,都没搞明白,偶然间看到了 import( ) 居然为空,我去,我去,好吧,我的编辑器...阅读全文

博文 2016-03-19 15:00:01 u013025612

成都创享兄弟科技有限公司招聘php/go工程师

**公司介绍** 成都创享兄弟科技有限公司成立于2014年。由多名经验丰富的互联网从业者共同成立,公司在互联网营销、产品技术研发有着丰富的经验.曾服务多家知名企业,公司自主研发的一款基于云计算的在线响应式云建站系统,不懂技术也能通过竹子的可视化在线网站编辑器创建官网 项目网站 http://www.zhuzi.me **职位说明** - 热爱技术,有强烈的新技术求知欲; - 良好的团队沟通和协作能力; - 熟练使用go进行后端服务开发; - 熟悉javascript,php者优先。 也接受想要学习go的php开发者投简历。 有意向请加我微信 ![](http://77fkk5.com1.z0.glb.clouddn.com/upload/image...阅读全文

go语言键盘输入(摘自the-way-to-go)

我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 `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....阅读全文

分布式聊天服务器 Tim

Tim是一个分布式聊天服务器,采用go语言开发,有很好的并发支持与良好的性能。 1.支持im的基本功能。 2.支持群聊。 3.支持用户状态信息推送,"在线","离开"等。 4.支持消息回执.消息不丢失。 5.支持离线信息,聊天信息等存储与拉取。 6.通过协议拓展,可以支持视频,音频等通讯。 7.支持心跳检测异常断开的客户端,检测客户端验证超时等。 8.支持可配置的同一账号多客户端同时登陆。 9.可以配置关联其他数据库用户系统,tim可以独立于业务之外。 10.支持无数据库模式,此模式无法保存数据。 11.支持自定义消息类型,如发送位置,分享购物信息等。 12.支持分布式部署,服务器横向拓展。 目前实现的...阅读全文

HTTP 流量复制工具Gor

Gor 是用 Go 编写的简单 HTTP 流量复制工具,主要是为了从生产服务器返回流量到开发环境。使用 Gor 可以在实际的用户会话中测试代码。 Gor 基础工作流: ![Diagram](http://static.oschina.net/uploads/img/201507/21161205_ezre.jpg) 从端口捕获流量: # 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...阅读全文

开源项目 2015-08-02 14:24:59 buger

Go 1.4 Beta 1 发布

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 日发布,更多更新内容请看发行说明...阅读全文

博文 2014-11-01 01:00:01 mengyidan1988

[郑州] 招聘golang、数据仓库工程师、功能/性能测试,移动端leader,类比百度 T5 及以上。

**郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动.** ***招聘数据开发工程师、功能\性能测试,移动端 Leader , PHP 、 nodejs 、 go 等,类比百度 T5 及以上*** 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利、结婚生子礼金、公司营收分红、年终奖、免费法律咨询、伯乐奖 QQ : 13482848...阅读全文

最强围棋程序Alpha Go 浅析

最强围棋程序Alpha Go 浅析 去年谷歌的围棋程序Alpha Go一举打败所有已知的围棋AI程序,以及以5:0的大比分打败了专业棋手Fan Hui。随后在《nature》上报到了Alpha Go 的内幕。作为一个伪的围棋爱好者和一个机器学习爱好者,看了该文章,并看了其他的分析,写下自己的心得: 围棋的智能对弈程序最早当属我国的手谈,那个时期的自动对弈程序属于经验型的。随后从国外对围棋研究后,产生了蒙特卡洛树搜索的方法应运于围棋对弈,产生了一系列的强AI,可以达到业余水准,关于蒙特卡洛树搜索可以参看《基于蒙特卡洛树搜索的计算机围棋博弈研究》,可以说对该方法进行了详细的说明,阅读也较容易,可以得到围棋AI的一些背景,制约蒙特卡洛方法更近一步的原因是:树的展开,以及搜索的深度的确定。于此同时,...阅读全文

golang文件服务器

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...阅读全文

博文 2014-10-04 19:26:08 ggaaooppeennngg

Go 语言使用 TCP keepalive

如果你写过某些 TCP socket 代码,你可能会疑问:如果网线被拨掉或者远程主机崩溃了我的TCP连接会怎样? 简短的答案是:一点影响都没有。这种情况下连接的结束远程主机是不会发送FIN数据包的,并且本地系统不能检测连接是否已中断。所以需要作为程序员的你来解决这种情况。 --zxp翻译于 1 个月 前 0人顶 顶 翻译的不错哦! GO语言为你提供了解决这个问题的几种方法。首选的方法可能是 net.Conn 接口中的SetReadDeadline方法。假设你的连接在以一种特定的间隔来接收数据,你可以简单地把读取超时当作一个io.EOF错误并Close这个连接。很多现有的TCP协议都支持处理错误的这种方法,它们通过定义某种心跳机制或 service health 1,在端点间以特定间隔发送PI...阅读全文

博文 2014-10-09 16:00:00 --zxp, 0x0bject

Go语言的类IPython 交互式编程界面

Bret Victor 的 Inventing on principle 是我看到过的最令人激动和震撼的演示,没有之一。虽然这位前苹果公司的UI大牛早在2012年就作出的这次演示,但他的影响一直没有减弱,编写程序过程中的任何变化,应该直接的产生反馈,让程序猿能够看到结果,或者说创造者需要对自己的创造的东西有实时的反馈。 之前一直在使用Python,非常喜欢IPythonn Notebook,使用IPython Notenook来快速的完成一些原型非常的方便。现在由于项目的需要,要开始使用Go语言,我就在想,有没有可以使用Go的IPython环境呢?知乎上还有一个相关的帖子,可惜上面并没有给出有效的回答。 我做了些小功课,结果并不完美,这里分享给大家。 官方版 Go Playground 开始...阅读全文

博文 2016-10-29 09:00:04 naughty

Golang 开发移动应用的OpenGL(Android为例)的渲染管线

golang.org/x/mobile/gl 实现的是 OpenGL ES 2 的封装。 参考:https://godoc.org/golang.org/x/mobile/gl OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES 1.0针对固定管线硬件的,OpenGL ES 2.0针对可编程管线硬件,可以认为完全是两套API。最新3.0版本也在Android4.3得到了支持,从源码上看完全扩展自2.0。 OpenGL负责把三维空间中的对象通过投影、光栅化转换为二维图像,然后呈现到屏幕上。 管线这个术语描述了OpenGL渲染的整个过程。openGL采用cs模型:c是cp...阅读全文

博文 2016-02-04 03:00:01 ghj1976

Golang设置国内代理

Golang V1.13之后支持通过设置变量GOPROXY来修改代理地址,默认的代理服务器 https://proxy.golang.org在国内访问经常出现timeout image.png 可以通过设置国内代理来加速下载 详见:https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md 在终端执行即可 go env -w GOPROXY=https://goproxy.cn,direct image.pn...阅读全文

博文 2019-12-11 06:32:39 李小西033

Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?

点击上方“公众号” 可以订阅哦!通过我们前面的系列文章,大家对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组成的,但是区...阅读全文

博文 2018-01-02 10:31:03 Wolf

【杭州】golang服务器端开发工程师 2名

golang服务器端开发工程师 2名: - 电商类产品的服务器端开发及维护,restful API开发; - 撰写业务、接口文档供前端使用; - 数据库设计、开发及维护和优化; 要求: - 1~2年Golang开发经验,熟练使用Golang进行Restful API接口开发; - 熟悉常用数据库MySql、PostgreSQL等,以及golang常见ORM进行数据库操作; - 有责任感、团队精神和良好的沟通能力; 其它 - 互联网电商类项目(2B)、小团队; - 工作以结果为导向,弹性工作时间、不打卡; - 期权激励; 工作地点:杭州市滨江海创园北楼D3008 薪水:6~15k 简历发送: hr@obenben.co...阅读全文

游戏服务器框架mqant

mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好...阅读全文

开源项目 2017-02-28 03:04:10

go语言http服务处理image/css/js等静态文件

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...阅读全文

select in Go's runtime

select可以用来管理多个channel的读写,以及实现channel读写timeout等。select并不是以库的形式提供,而是语言级支持的语法特性,因此select的实现主要由编译器和runtime共同完成,本文将重点关注runtime部分。 select语句的执行主要由4个阶段组成,依次是创建select对象,注册所有的case条件,执行select语句,最后释放select对象。这里提到的select对象是底层runtime维护的一个Select结构,这个对象对Go程序来说基本是透明的。后面的内容中,我将称这个select对象为选择器。 选择器内存模型(Select) 这里内存模型主要是描述的选择器在内存是如何布局的,是什么样的数据结构来维护的。源码位于runtime/chan.c...阅读全文

博文 2014-11-10 09:44:38 skoo

Vendor 包管理器 Go Glide

Glide 是 Golang 的 Vendor 包管理器,方便你管理 vendor 和 verdor 包。 主要特性: * 简单管理依赖 * 支持 **versioning packages**,包括 [Semantic Versioning 2.0.0](http://semver.org/) 支持 * 支持 **aliasing packages** (e.g. for working with github forks) * Remove the need for munging import statements * 支持所有 `go` 工具 * 支持 VCS 工具和 Go 支持: * git * bzr * hg * svn 支持定制本地和全局插件 (se...阅读全文

开源项目 2015-11-04 16:00:00 Masterminds

Go 1.6将进一步改进垃圾收集器

尽管Go 1.5刚刚发布,仍然相对较新,但是Go团队已经在致力于改进其新的低延迟并发垃圾收集器,希望Go更适合新的应用领域。Google工程师Austin Clements和Rick Hudson如是说。 Go 1.5用新的垃圾收集器代替了原来的STW(stop-the-world) GC,解决了延迟问题。当负载较重时,每50ms,新的GC的活动时间可以控制在10ms以下,从而使Go程序在一般情况下能运行得更快些。在更极端的情况下,停顿可以从300ms降到4ms。 Go 1.6的目标是进一步稳定GC,并在以下几个方面做出改进: 状态协调(State coordination):Go 1.5 GC有个主要瓶颈是从Go 1.4继承来的,源自其集中式的GC协调器(coordinator),这是一个...阅读全文

博文 2015-09-13 14:40:00 臧秀涛

内网穿透easyProxy内网穿透代理服务器

# easyProxy ![](https://img.shields.io/github/stars/cnlh/easyProxy.svg) ![](https://img.shields.io/github/forks/cnlh/easyProxy.svg) ![](https://img.shields.io/github/license/cnlh/easyProxy.svg) easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**代理服务器。目前支持**tcp、udp流量转发**,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还**支持内网http代理、内网socks5代理**,可实现...阅读全文

开源项目 2019-01-28 17:32:02 cnlh

GO语言零基础入门资料整理

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语言的学习与编程。 一...阅读全文

博文 2016-01-15 19:00:00 weiyuefei

我用 Go 语言做了一个红白机模拟器

本文由 伯乐在线 - JackalHu 翻译,toolate 校稿。未经许可,禁止转载!英文出处:fogleman。欢迎加入翻译小组。 译注:Family Computer(简称 FC)是任天堂(Nintendo)公司发行的家用游戏主机。日版 FC 机身以红色和白色为主,因此在华人圈中又有“红白机”的俗称;欧美版 FC 在欧美则称 Nintendo Entertainment System(简称 NES)。 最近我编写了一个 FC 模拟器。制作这样一个模拟器主要是出于兴趣以及为了从中学习 FC 的工作原理。在这个过程中我学到了很多有趣的知识,于是写下这篇文章同诸位分享我所学到的内容。由于相关的文档已经有很多了,所以这里我只打算讲述一些有趣的特性。请注意,接下来都将是些技术方面的内容。 图1 ...阅读全文

博文 2015-05-28 13:52:44 伯乐在线

Go 语言的缓存库 FreeCache

FreeCache 是一个 Go 语言的缓存库,无额外的 GC 负荷。数百万对象的垃圾收集延迟仅在数百毫秒。 特性: * 可存储数以百万计条目 * 零垃圾收集负荷 * 高并发而且线程安全的访问 * 纯 Go 语言实现 * 支持对象失效 * 近乎 LRU 的算法 * 严格限制内存使用 * 提供一个测试用的服务器,支持一些基本 Redis 命令 示例代码:

cacheSize := 1024*1024
cache := freecache.NewCache(cacheSize)
key := []byte("abc")
val := []byt...阅读全文

开源项目 2015-04-29 16:00:00 coocood

Go Guru(golang 代码导航工具) 的使用

翻译来源:http://golang.org/s/using-guruGuru 是一个导航go 代码的编辑器集成工具这篇文章将展示了我们怎么使用Guru。在开发golang项目的过程中我们希望我们的编辑器回答我们各种各样的问题。例如: 标识符(名字,对于变量、常量、函数、语句块)在哪里申明? 所有对此申明的引用在哪里? 此表达式的方法变量是什么? 这个包的api 是什么? 哪些具体类型实现此接口? 动态调用可能的调用者是什么? 方法可能的调用这是什么? 在此channel 上发送的值可能在哪里接收?除了它带来了一些在任何ide中没有发现的高级静态分析功能,它还带来了很多重量级ide才能带给你的令人兴奋的效果。GopherCon 2014 talk on the Go Guru (https:...阅读全文

博文 2017-03-10 18:27:35 hehe_Android

[郑州] 招聘Nodejs、golong 和 web 前端架构师,移动端等大牛,类比百度 T4 T5及以上。

**郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动。 ** 招聘: PHP 、 Nodejs 、 golong 和 web 端架构师,移动端大牛, Linux C \C++,测试、运维,数据分析、产品、网络工程师等,类比百度 T4 级以上最佳 应届生高潜力的也要!基础好,智商高。 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利...阅读全文

Go-Ping

package conn import ( "bytes" "net" "os" "time" ) 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 // ...阅读全文

博文 2015-02-26 12:28:25 nulijiabei

【求助】如何编译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这个文件报错。 ...阅读全文

服务器框架zinx-基于Golang的轻量级TCP并发服务器框架

# Zinx [![License](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](LICENSE) [![Gitter](https://img.shields.io/badge/在线交流-Gitter-green.svg)](https://gitter.im/zinx_go/community) [![zinx详细教程](https://img.shields.io/badge/zinx详细教程-简书-red.svg)](https://www.jianshu.com/p/23d07c0a28e5) [![zinx原创书籍下载](https://img.shields.io/badge/原创书籍...阅读全文

beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读

了解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的同学,肯定觉得很熟悉,拿最...阅读全文

博文 2014-10-04 19:26:21 yuan-shuai

用golang写socks5代理服务器1-本地代理

用go语言来实现socks5代理服务器,后面会加入ssh远程代理,用户验证,均衡负载一些吧 首先监听8080端口,循环接收tcp连接 server, err := net.Listen("tcp", ":8080") if err != nil { log.Panic(err) } defer server.Close() log.Println("开始接受连接") for { client, err := server.Accept() if err != nil { log.Println(err) return } log.Println("一个新连接") go socks5Proxy(client) } socks5Proxy函数用来实现sock5代理 先介绍一下sock5代理协议 ...阅读全文

博文 2016-10-20 08:00:09 myml

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

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

go 实现的socks5服务器端

#####用go写的socks5服务器端代码: 1.默认只支持用户名密码的认证方式(username:abc , password:123),监听 tcp 8083 端口; 2.CMD支持TCP、UDP,不支持BIND,需要的可自行再实现; 3.支持ipv4、domain,目前不支持 ipv6; 4.建议客户端使用 proxycap, proxycap、SocksCap64 测试过能很好支持。(玩LOL,正常游戏)建议客户端不设置服务器端做DNS解析,效率相对会慢些; 5.注意服务端 防火墙 tcp 8083 端口开放及UDP协议全开放; 6.使用时有bug或问题欢迎留言; 7.想尝试用 go 写个简单的客户端,支持 lsp 劫持,配合服务器端做代...阅读全文

Go 编写的内容管理系统 Fragmenta CMS

Fragmenta CMS 是一个用户友好的内容管理系统,用 Go 编写。 Fragmenta CMS 可以让你快速建立网站,它包办了创建网站的一般性的繁琐工作,包括:用户登录,网页,博客文章等,让你专注于你 app 自身的特点,你可以: * 简单部署 —— 你只需要一个数据库和fragment —— 与内置的Web服务器本地进行测试 * 使用与你网站相同的风格进行Rich editing * 免费且开源 (MIT) ——下载二进制文件或自己编...阅读全文

开源项目 2015-10-15 16:00:00 fragmenta

在线游戏Gobang

# Gobang 五子棋,在线多人游戏。Go语言编写。 # Getting Started Linux用户可以在这里获取Release版本 https://github.com/hcrgm/Gobang-Go/releases 构建: 1. 安装Go语言环境 2. 克隆项目,执行./install.sh 然后让程序跑起来 1. 依照 `config_sample.json` 配置,命名为 `config.json` 2. 执行 `nohup ./gobang > golang.log 2>&1 &` 3. 大功告成,用浏览器打开看看~ # LICENSE GPLv...阅读全文

开源项目 2016-10-06 14:11:33 hcrgm

go语言socket通信初试

听说go的在系统性能方面有很大的优势,最近对go语言产生了极大的兴趣,相对现有的项目用go改造,原有的项目用的ace框架编写的通信的框架,在目前的移动的通信网中忙时有的时候处理不过来,于是先研究试图测试一下socket。由于对go刚刚入门,有些不正确的地方还请高人指点。 由于我们系统通常是不同语言之间通信(之前系统是客户端和服务端都用c++),这里客户端采用java+mina编写,服务端采用go编写,最初设计,像借用go语言中的gob进行编解码,但是经过测试后发现行不通,经过和网友以及一些高人的指点,gob其实针对go语言之间的编解码的,跨语言还真不灵光。有同事建议我用protocolbuffer这个,我一看这个又是定义类似idl文件(之前做了几年的corba技术,对这样的东西有点抵触了,因...阅读全文

博文 2014-10-04 19:26:17 DEC_LIU

修改Go语言(golang)编译器源代码让它支持UTF-8 BOM

Go语言(golang)第一个正式版Go1发布了,但是这个新兴的编程语言还是非常不完善。这不,我(Liigo)又发现它的编译器竟然不支持编译带BOM的UTF-8编码的.go源文件。这就很奇怪,该语言明明要求源代码文件.go必须是UTF-8编码,但有不允许带UTF-8 BOM。要知道,这个世界上带BOM的文件太多了,很多文本编辑器/代码编辑器/IDE都会默认生成带有BOM的UTF-8文件。如果仅仅因为源代码文件多了BOM,编译器将不能编译这个文件,我觉得它太低能了。 Go语言编译器(gc)不支持带有BOM的UTF-8源文件: Golang's compiler (gc) don't accept the .go files with UTF-8 BOM: E:\liigo\golang\src...阅读全文

博文 2014-10-04 19:25:57 liigo

Go HTTP Redirect的知识点总结

HTTP 规范中定义了返回码为 3xx 代表客户端需要做一些额外的工作来完成请求,大部分3xx用来做转发(redirect)。 状态码的详细说明可以参照规范或者 wikipedia、维基百科, 以下是代码的简短介绍。 300 Multiple Choices: 返回多个可供选择的资源 301 Moved Permanently: 请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一 302 Found: 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求,HTTP 1.0中的意义是Moved Temporarily,但是很多浏览器的实现是按照303的处实现的,所以HTTP 1.1中增加了 303...阅读全文

访问golang.org官网

解决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了...阅读全文

博文 2014-10-04 19:27:16 陈好

Linux下使用goagent

Linux下使用goagent 分类: linux 2013-04-18 11:16 21614人阅读 评论(4) 收藏 举报 说到穿越长城的软件有很多,不过最近最有名而且免费的就非goagent莫属了,goagent是利用谷歌的GAE服务来翻越长城的,具有速度快,稳定的特点,正好今天我的ssh代理过期,于是准备以后使用goagent来FQ。 1:申请appengine.google.com的个人apppid 首先登录appengine.google.com,申请个人apppid,它将在Goagent中用到。appid只要唯一就可以,必须是英文字符和数字。 二、安装和本地部署 安装goagent服务端 既然已经成功的申请到了apppid,那么接下来的工作就是安装goagent的服务端了。 1...阅读全文

Golang使用lxn/walk做GUI界面开发:邮件群发器

我也是刚刚使用walk这个组件,很多控件接口不熟悉,把我上次发的邮件群发器修改成图形界面的,线程发送邮件,gob库保存数据等。只提供作学习交流,仅供参考(界面很烂)。 接下来是main.go的代码: // Multi-SendEmail project main.go package main import ( "bufio" "encoding/gob" "errors" "fmt" "io" "net/smtp" "os" "strconv" "strings" "time" ) import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) type ShuJu struct { Name string Pwd ...阅读全文

博文 2014-12-20 14:00:06 一曲忧伤

Go 语言 SMTP指令发邮件(实例)

简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP是应用层的服务,可以适应于各种网络系统。SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF(\r\n)。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。 SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为: (1)建立TCP连接。 (2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。(EHLO 是扩展指令,不同服务器有不同指令) (3)服务器端以OK作为响应,表示准备接收。 (4)客户端发送RCPT命令。 (5)服务器端表示是否愿意为收件人接收邮件。 (6)协商结束,发送邮件,用命令DA...阅读全文

请教一个golang如何通过代理服务器验证问题

最近在做一个简单测试,在公司内网实现抓取外网一个网页,但是因为公司是通一个代理服务器出去的,所以需要先通过代理服务器验证。找了好久的资料实在没找到,我用c#可以实现。主要是不知道golang下面怎么实现代理服务器的验证,代码是在网上一个关键代码如下: func fetch(url, proxy_addr *string) (html string) { transport := getTransportFieldURL(proxy_addr) client := &http.Client{Transport: transport} req, err := http.NewRequest("GET", *url, nil) ****req.SetBasicAut...阅读全文

在生成环境中使用 Go 语言两年的总结

在iron.io的生产环境使用Go语言两年后,我想分享我们的经验和感受。我们是第一批在生产环境中使用Go(Go语言)的公司之一,长久以来我们不知道该有怎样的预期,但到目前为止,很棒。 在之前发表的一篇文章从Ruby切换到Go中我谈了一些,但这次将更具细节一些,我们喜欢这门语言以及一路上我们学到的东西。介绍没有特定顺序,按下面这样: 性能表现(Performance)内存占用(Memory)并发性(Concurrency)可靠性(Reliability)部署(Deployment)天赋(Talent) 性能表现 当我们第一次决定要使用什么语言时我们做了一些调研,为我们的应用环境、消息队列创建了一些模拟。我用Go写了我偏爱的beanstalkd的一个副本实现,使用beanstalkd协议,这样我...阅读全文

studygolang源码阅读小结 <四>

##http与 router## 先看http 提供的强大简洁服务器端的功能 - HTTP响应模块 func ListenAndServe(addr string, handler Handler) error 这个方法就处理了所有的http请求。第二个参数如下 type Handler interface { ServeHTTP(ResponseWriter, *Request) } 也就是实现了该接口的结构,均能够对http请求作出相应。看这个方法的参数大致就能猜出,这个方法是让使用者自己往RewponseWriter中写http header 以及http data。 type ResponseW...阅读全文