服务器端:package main import (     "bufio"     "bytes"     "fmt"     "net"     "os"     "strconv"     "time" ) var User map[string]*net.TCPConn func main() {     var tcpAddr *net.TCPAddr     var tcpListen *net.TCPListener     var tcpConn *net.TCPConn     var err error     User = make(map[string]*net.TCPConn)     //监听端口     tcpAddr, err = net.ResolveTCPAddr("tcp4", ":5000")     if err != nil {         fmt.Println(err)         os.Exit(1)     }     //监听     tcpListen, err = net.ListenTCP("tcp4", t...
 发布日期: 2015-06-30    分类: Go    浏览量: 1297   0条评论  
文章是翻译自Go官方博客的文章:http://blog.golang.org/errors-are-values随便翻译的一下,给自己参考,有需要的同学也可以参考参考,翻译的不好的地方或者难以理解的地方请参考原文。本人英语本身也不怎么样!所有有可能会有理解错误,用词不当,语言组织不当的地方,请见谅!该怎么样去处理错误(errors),是go程序员特别是刚学go的人之间的一个共同讨论点。讨论经常会随着下面这段程序出现的次数越来越多而变成抱怨。if err != nil {     return err }我们最近扫描了所有我们能够找到的开源项目,发现重复出现这段代码的次数是每页或者每两页只出现了一次,是不是比你想象中的要少很多。然而,如果你还是感觉必须到处写if err != nil,那一定是哪里出了问题,并且会认为问题很明显是出在go自己身上。很不幸,这是错误的,而且这很容易去纠正。假如一个新手go程序员去提问这发生了什么,“怎么会只有一个错误处理?”,其实你应该学习这种模式,并且保持它。在其他编程语言里面,一种可能方式是使用try-catch块或者其他类似原理的方式去处理错误(err...
 发布日期: 2015-05-24    分类: Go    浏览量: 1261   0条评论  
go有一个官方包来操作json格式的数据,包位于encoding/json。JSON编码func Marshal(v interface{}) ([]byte, error)返回用JSON编码v之后的值。类型转换规则:boolean值会编码成JSON的boolean;float,integer会编码成JSON的number;string值会编码成UTF-8JSON字符串,无效的字节用Unicode替换,"<"和">"编码成"\u003c" and "\u003e","&"编码成"\u0026";array和slice会编码成JSON array,[]byte编码成base64字符串,空的slice编码成null;struct会编码成JSON object。空值是指false,0,空指针或者空interface,任何长度为0的array,slice,map或者string。json对象默认的key字符串是strut的字段名,也可以自己指定名字,方法是在每个字段最后用“json”标签指定名字:比如:type Personal struct {     Name stri...
 发布日期: 2015-05-20    分类: Go    浏览量: 4869   0条评论  
本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助。原Slide访问需要自己搭梯子。另外这里也要吐槽一 下:Golang官方站的slide都是以一种特有的golang artical的格式放出的(用这个工具http://go-talks.appspot.com/可以在线观看),没法像pdf那样下载,在国内使用和传播极其不便。转载自:http://tonybai.com/2014/10/22/golang-testing-techniques/一、基础测试技术1、测试Go代码Go语言内置测试框架。内置的测试框架通过testing包以及go test命令来提供测试功能。下面是一个完整的测试strings.Index函数的完整测试文件://strin...
 发布日期: 2015-04-10    分类: Go    浏览量: 1153   0条评论  
其实这样的程序随便搜一下一大把!这里纯粹练习用的,然后模仿的和windows上面的Ping程序一模一样。这里参考了这篇博文:http://my.oschina.net/ybusad/blog/300155ping程序发的是icmp包,这个协议和tcp、udp协议是在同一层的。包结构如下:    0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Type      |     Code      |          Checksum             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |           ...
 发布日期: 2015-04-10    分类: Go    浏览量: 1155   0条评论