protobuf的简单使用
摘要:操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 go 版本 : go1.8.3 linux/amd64 Python 版本 : 2.7.5 libprotoc : 2.5.0 Protobuf是Google开发一种数据描述语言,能够将结构化数据序列化,可用于数据存储、通
阅读全文
posted @
2018-02-01 22:19
Mike_Zhang
编辑
vim配置go语法高亮
摘要:操作系统 : CentOS7.3.1611_x64 go 版本 : go1.8.3 linux/amd64 vim版本 :version 7.4.160 vim配置go语言语法高亮的问题已经遇到过好几次了,每次都去查找太麻烦,这里总结下。 安装git: 安装vim-go : 配置vimrc文件: 如
阅读全文
posted @
2018-01-23 21:51
Mike_Zhang
编辑
使用go语言操作db2
摘要:操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 db2版本: db2_v101_linuxx64_expc 问题描述 怎么使用go语言在CentOS环境下操作db2数据库? 解决方案 go语言操作数据库相关信息可以参考如下链接: https://
阅读全文
posted @
2017-12-02 22:22
Mike_Zhang
编辑
go语言生成uuid
摘要:操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 golang没有提供生成uuid的接口,但开发中确实需要uuid。 这里把看到的代码记录下,也方便我以后查阅。 解决方案 示例代码如下: 运行效果: 讨论 当然如果你只是想快速的得到uuid,而且使用的是linux系统,
阅读全文
posted @
2017-06-16 12:08
Mike_Zhang
编辑
golang之log rotate
摘要:操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 golang的log模块提供的有写日志功能,示例代码如下: 运行效果: go语言的log模块没有提供log rotate接口,但实际开发中我们需要该功能: 我们不希望单个日志过大,否则文本编辑器无法打开,查看比较困难;
阅读全文
posted @
2017-06-14 00:07
Mike_Zhang
编辑
golang之tcp自动重连
摘要:操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。 测试服务器示例代码: /* tcp server for test E-Mail : Mike_Zhang@live.com
阅读全文
posted @
2017-06-13 22:31
Mike_Zhang
编辑
使用go语言解析xml
摘要:操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 现有一个自动报障程序,如果服务出错会自动给指定人发送邮件,配置文件内容如下(default.xml): 该配置以config为root标签,有xml text部分(比如smtpServer标签)、嵌套xml(receiv
阅读全文
posted @
2017-06-10 21:41
Mike_Zhang
编辑
给go程序添加命令行参数
摘要:操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 需要应用程序根据不同的配置文件访问不同的服务器,希望程序启动时可以指定配置文件。 解决方案 运行效果如下: 讨论 这里只是个简单的示例代码,其它功能请自行扩展。 好,就这些了,希望对你有帮助。 本文github地址: h
阅读全文
posted @
2017-06-10 21:40
Mike_Zhang
编辑
go1.8之安装配置
摘要:说明: 之前学习过go语言(大概是0.9版本),后来更新太快,也没怎么使用,就荒废掉了,今年有项目需要用go开发,重新捡起。 这是我在学习go语言过程中整理的内容,这里记录下,也方便我以后查阅。 操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 安装go 这里直接安装二进制,其它
阅读全文
posted @
2017-06-10 21:18
Mike_Zhang
编辑
简单的TCP代理服务器
摘要:我之前的一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/03/07/socketRedirect.html )中介绍过用python写的一个简单的http端口转发程序,其实那个也算是个代理服务器,只是功能比较简单罢了。由于这段时间在开发代理服务器,接触到各个方面的资料,这里总结下,也方便我以后使用。一、netcat实现网址:http://netcat.sourceforge.net/ netcat是个很强大的工具,在网络工具中有“瑞士军刀”美誉,不懂的搜索下,我就不多说了,相关用法可参考这里:http://en.wikipedia.org.
阅读全文
posted @
2012-10-09 23:48
Mike_Zhang
编辑
命令行参数解析
摘要:linux下写服务端程序免不了用到命令行参数,这里我总结下C语言、bash脚本、python和go语言中的使用方法,也方便我以后查阅。这里我主要用的是getopt这个函数,首先看看c语言中的定义。头文件:#include<unistd.h>函数定义:int getopt(int argc,char * const argv[ ],const char * optstring); extern char *optarg; extern int optind, opterr, optopt;说明: getopt函数是用来分析命令行参数的,参数argc和argv是由main()传递的参数
阅读全文
posted @
2012-09-07 00:45
Mike_Zhang
编辑
用go语言遍历文件夹
摘要:用python遍历文件夹很方便,在go的世界里,我也需要这样的功能。找了找文档,里面有这个功能(具体参考这里:http://golang.org/pkg/path/filepath/ )……好,不废话了,我也想早点睡,直接上代码。代码如下:/*File : getFilelist.goAuthor : MikeE-Mail : Mike_Zhang@live.com*/package mainimport ( "path/filepath" "os" "fmt" "flag")func getFilelist(pa
阅读全文
posted @
2012-08-23 01:08
Mike_Zhang
编辑
Go语言实现http共享(总结)
摘要:go语言入门简单,可要写出好的go代码得需要下些功夫。前两天刚把http文件共享的升级过(http://www.cnblogs.com/MikeZhang/archive/2012/08/06/httpShareGolang20120805.html ),现在经大牛指点完全用http实现,感觉爽快多了。一个简单的http服务器代码package mainimport ( "io" "net/http" "log")func HelloServer(w http.ResponseWriter, req *http.Request) {
阅读全文
posted @
2012-08-10 01:53
Mike_Zhang
编辑
Go语言实现http共享(带客户访问trace)
摘要:我之前有篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/03/13/httpShareGolang20120312.html)中提到过用Go语言实现http文件共享,这个版本的程序比python的实现快了点,默认情况下支持的客户端多了些,但是没有客户访问的trace,程序运行过程中,感觉像是死掉了。我想改进下,让它有trace。代码如下:/*File : httpShareWithTrace.goAuthor : MikeE-Mail : Mike_Zhang@live.com*/package mainimport( ...
阅读全文
posted @
2012-08-06 00:39
Mike_Zhang
编辑
像Python那样跑go1的代码(Windows下双击运行)
摘要:Windows下,以".py"为扩展名的Python程序可以双击运行,用起来很爽,现在玩go语言,我也想这么玩……这里说说我的玩法。示例代码(test.go):package mainimport ( "fmt" "time")func main() { fmt.Println("Test") time.Sleep(time.Duration(6) * time.Second)}Windows7 下,修改注册表:路径:HKEY_CLASSES_ROOT\go_auto_file\shell\open\command
阅读全文
posted @
2012-04-25 14:04
Mike_Zhang
编辑
go 1发布了,之前写的代码不能运行了
摘要:刚刚发布go 1 ,迫不及待的进行更新,可问题出来了:1、8g的命令不能用了我的平台是windows,用notepad++配置了开发环境(http://www.cnblogs.com/MikeZhang/archive/2012/02/10/nppRunGo.html)设置“8g -o test1.8 test1.go & 8l -o test1.exe test1.8 & test1.exe”的快捷键为Ctrl+F6但当执行时候,提示如下:‘8g.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。查了查资料,应该这样做:go run file.go或者go
阅读全文
posted @
2012-03-29 23:37
Mike_Zhang
编辑
asterisk事件监控
摘要:asterisk有一个很好的东东,就是Event,会主动通知客户端服务器发生了什么……不过前提是你得先连上服务器。好,不废话了,下面开工。首先声明下环境:CentOS 6一、安装并配置asterisk1、下载asteriskwget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.7.1.tar.gz2、解压并安装tar zxvf asterisk-1.8.7.1.tar.gzcd asterisk-1.8.7.1./configure && make && m
阅读全文
posted @
2012-03-15 16:40
Mike_Zhang
编辑
Go语言实现http共享
摘要:在我之前的文章(http://www.cnblogs.com/MikeZhang/archive/2012/02/11/httpFileSharePythonAndGo.html)中提到过用go语言实现http共享,这个程序我一直在用,感觉还是python的方式更加灵活:如不指定端口,则默认开启8000……可python不给力,慢不说,还只允许一个客户端,果断决定自己写一个!好了,不多废话了,代码如下:/*File : httpShare.goAuthor : MikeE-Mail : Mike_Zhang@live.com*/package mainimport ( ...
阅读全文
posted @
2012-03-13 00:20
Mike_Zhang
编辑
csv文件操作(go语言)
摘要:go语言自带的有csv文件读取模块,看起来好像不错,今天玩玩,也算是系统学习go语言的一部分……^_^一、写csv文件函数:funcNewWriter(w io.Writer) *Writer func(w *Writer) Flush() func(w *Writer) Write(record []string) (err os.Error)func(w *Writer) WriteAll(records [][]string) (err os.Error)具体见官网:http://golang.org/pkg/csv/#NewWriter其实写csv文件大可不必用这些函数,直接按照规则写
阅读全文
posted @
2012-02-19 22:43
Mike_Zhang
编辑
消息摘要算法示例(python和go)
摘要:常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。一、python消息摘要示例代码如下:#! /usr/bin/python''' File : testHash.py Author : Mike E-Mail : Mike_Zhang@live.com'''import hashlibsrc = raw_input("Input string : ")funcNameList = ["MD5","SHA1&qu
阅读全文
posted @
2012-02-18 01:31
Mike_Zhang
编辑