-
Golang实现简单tcp服务器02 -- 实现echo服务器/客户端
所属栏目:[大数据] 日期:2020-12-16 热度:175
用Golang实现 echo服务器/客户端 本节我们就从实现一个简单的echo的服务端/客户端来入手,了解golang的实现tcp长连接服务器的具体细节. 首先,我们先列一下 服务端的实现思路及步骤 : 创建一个套接字对象,指定其IP以及端口. 开始监听套接字指定的端口. 如有新[详细]
-
Golang实现简单tcp服务器03 -- 文本广播式聊天服务器/客户端
所属栏目:[大数据] 日期:2020-12-16 热度:181
用Golang实现 文本广播式聊天服务器/客户端 本节,我们将一步一步的把上一节完成的echo服务器/客户端改造成一个文本信息的聊天室 服务端的改动 服务器为了实现聊天信息的群体广播,需要记录所有连接到服务器的客户端信息,所以,我们需要添加一个集合来保存所有[详细]
-
Golang实现简单tcp服务器04 -- 服务器的粘包处理
所属栏目:[大数据] 日期:2020-12-16 热度:111
服务器的粘包处理 什么是粘包 一个完成的消息可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题 TCP粘包和拆包产生的原因 应用程序写入数据的字节大小大于套接字发送缓冲区的大小 进行MSS大小的[详细]
-
用Go语言写了一个电脑搜索文件的小东西
所属栏目:[大数据] 日期:2020-12-16 热度:102
package mainimport ("bytes""fmt""os""os/exec""path/filepath""sync")type jieguo struct {go_num intLock sync.Mutex}var searchName string = os.Args[1]var search_result chan string = make(chan string,1)var nums chan int = make(chan int,1)var x[详细]
-
Golang与C对比学习 (1)
所属栏目:[大数据] 日期:2020-12-16 热度:113
控制结构: go的控制结构主要有if,switch,for三种,并没有while,可以用for替代while if: go的if条件不用括号括起来,但是程序体部分必须用花括号括起来,从而解决了C语言中的歧义问题 switch: 即使没有break,分支也会结束 case中可以用任何的值 分支条[详细]
-
给golang增加websocket模块
所属栏目:[大数据] 日期:2020-12-16 热度:103
最近打算做一款类似腾讯脑力达人的h5游戏,之前打算用skynet来做,所以给skynet增加了websocket模块, https://github.com/Skycrab/skynet_websocket。刚好最近在学习golang,考虑之下打算用golang来实现,说不定过段时间 还能整个golang游戏服务器。之前我[详细]
-
Golang二进制转换十进制代码
所属栏目:[大数据] 日期:2020-12-16 热度:119
Golang二进制转换十进制代码,使用 container/list 实现出入栈操作,完成转换。 二进制转十进制的方法是: ? ? 从右到左的取数值乘以2的N次幂,依次相加,N为数值在二进制中的位数。 ? ? packagemain/**二进制转换成十进制核心:入栈、出栈、类型转换sum+=int[详细]
-
revel安装报错unrecognized import path "golang.org/x/net/
所属栏目:[大数据] 日期:2020-12-16 热度:179
由于GFW的原因,无法下载websocket源码,其实该源码在git上也有,只要下载下来,然后再GOPATH中写上相应的路径就可以通过编译,具体步骤如下 : 1. clone git上的代码到本地,比如clone到了家目录(~/) git clone https://github.com/golang/net.git 2. 在GOPA[详细]
-
golang runtime-gdb.py的问题
所属栏目:[大数据] 日期:2020-12-16 热度:191
问题: (gdb) source /Users/sherlock/documents/go/src/runtime/runtime-gdb.pyLoading Go Runtime support.Traceback (most recent call last): File "/Users/sherlock/documents/go/src/runtime/runtime-gdb.py",line 205,in module _rctp_type = gdb.loo[详细]
-
golang中map的排序
所属栏目:[大数据] 日期:2020-12-16 热度:198
在实现 golang 中发布订阅模式的时候,需要按照优先级排序回调函数;golang 中的 map 是无序的,需要手动取出 key,并对key进行排序,下面是排序一块的代码段: [ 1 = [func1,func2] 0 = [func5,func6] 2 = [func3,func4]]...[func5,func6,func1,func2,func3[详细]
-
golang grpc thrift with aerospike
所属栏目:[大数据] 日期:2020-12-16 热度:192
面对着数百G的数据,数万的TPS,一直在找合适的数据库及RPC框架。最近对aerospike和google grpc、apache thrift进行了简单的测试。 测试的内容比较简单,就是客户端根据KEY到服务端进行查找,返回value。为了测试简单,数据库中只有一对key_value。数据库用[详细]
-
编程语言明日之星——go语言
所属栏目:[大数据] 日期:2020-12-16 热度:55
正如Go语言之父Rob Pike自己所说:”Go的目标是解放程序员[详细]
-
golang实现set集合,变相实现切片去重
所属栏目:[大数据] 日期:2020-12-16 热度:118
原文地址:http://www.jb51.net/article/56828.htm,本文抽取出了set的部分,并对无伤大雅的小错误进行了修改 java中有set集合,而golang没有,今天突然有个需求要对一堆int切片进行组合去重,郁闷好久,自己的土办法时间复杂度实在太高,看到上面那个帖子感觉[详细]
-
关于Go语言共享内存操作的小实例
所属栏目:[大数据] 日期:2020-12-16 热度:172
strong style="margin: 0px; padding: 0px; border: 0px; font-size: 15px; font-weight: bold; color: rgb(34,34,34); font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-style: normal; font-variant: normal; letter-spacing: normal; lin[详细]
-
golang vim ide 环境搭建
所属栏目:[大数据] 日期:2020-12-16 热度:136
虽说 sublimetext3+gosublime+gocode 是目前较为 流行的Golang开发环境组合,但作为一名VIMer,没有一套得心应手的Vimfor Golang dev心里总是过不去的。Golang虽然年轻,但即便是从Go 1版本发布(2012年3月28日)算起,掐指算来也有小三年了。全世界的开发者已[详细]
-
golang语法学习(一):变量,常量以及数据类型
所属栏目:[大数据] 日期:2020-12-16 热度:98
学习一门新的语言肯定是要从他的基本语法开始,语法构成了整个程序设计的基础,从语法中我们也可以看到这门语言的一些特性,但是话说回来,语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度,其实最好的方法应该是旁边有本书,随时可[详细]
-
golang服务器+android 生成相同md5码
所属栏目:[大数据] 日期:2020-12-16 热度:72
java代码生成md5 public void testMD4() {try {MessageDigest digest = MessageDigest.getInstance("MD5");byte[] b = digest.digest("123456".getBytes("UTF-8"));StringBuilder sb = new StringBuilder();for (byte bt : b) {int ibt = bt 0xff;//抹掉高位[详细]
-
Go语言Slice去重
所属栏目:[大数据] 日期:2020-12-16 热度:109
pre name="code" class="plain"package mainimport ("fmt")func main() {a := []int{2,1,2,5,6,3,4,9}z := Rm_duplicate(a)}func Rm_duplicate(list *[]int) []int {var x []int = []int{}for _,i := range *list {if len(x) == 0 {x = append(x,i)} else {f[详细]
-
不是语言之争---Go vs Erlang
所属栏目:[大数据] 日期:2020-12-16 热度:174
因为 云巴 系统对高并发、低延迟的需求,我们对各个语言、平台做了很多的调研比较工作。这自然就包括致力于开发高并发应用的 Go 和 Erlang。 并发 Go 对高并发的支持通过 goroutine 实现。goroutine 可以理解为轻量级的 线程(thread)。同一个 Go 应用创建[详细]
-
记golang数据库查询封装的坑
所属栏目:[大数据] 日期:2020-12-16 热度:196
前文 golang接触也有一段时间,项目中有用到web api,基本上就是post json格式的,本想用java来写,刚下手想到java太臃肿,各种繁琐。觉得用golang小试一把,于是github一把,还是发现很多go rest 插件,选了一个https://github.com/ant0ine/go-json-rest一[详细]
-
记使用WaitGroup时的一个错误
所属栏目:[大数据] 日期:2020-12-16 热度:148
记使用WaitGroup时的一个错误 最近重构我之前写的服务器代码时,不当使用了WaitGroup,碰到了个错误,记录下. package mainimport ( "fmt" "sync" "time" )func main() { var wg sync .WaitGroup wg .Add ( 1 ) f1 := func() { time .Sleep (time .Second * 2[详细]
-
【GOLANG】Go语言学习-HTTP
所属栏目:[大数据] 日期:2020-12-16 热度:90
一. http客户端 1. http.Client和http.NewRequest来模拟请求 package main import ( "net/http" "io/ioutil" "fmt") func main() { client := http.Client{} reqest,_ := http.NewRequest("GET","http://www.baidu.com",nil) reqest.Header.Set("Accept","te[详细]
-
Go语言实现简单的文件服务器
所属栏目:[大数据] 日期:2020-12-16 热度:175
package mainimport ("fmt""net/http")func main() {http.Handle("/",http.FileServer(http.Dir("./")))e := http.ListenAndServe(":8080",nil)fmt.Println(e)}[详细]
-
golang语法学习(二):控制语句,函数,以及错误处理。
所属栏目:[大数据] 日期:2020-12-16 热度:200
在语法篇(一)中学习了go中基本的数据类型、变量、常量等组成语言的基本要素,在这一节中将会学习如何将这些元素组织起来,最终写成可以执行的代码。 在这一部分包括: go中的流程控制语句; go中函数的用法; go特殊的错误处理方式; Golang中的流程控制语句[详细]
-
golang: 常用数据类型底层结构分析
所属栏目:[大数据] 日期:2020-12-16 热度:124
转自http://www.cnblogs.com/moodlxs/p/4133121.html 虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的。它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struct来实现。了[详细]
