- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 go语言RPC
RPC remote procedure call,远程过程调用。go语言对RPC的支持有以下要求:1.以对象形式注册RPC2.RPC函数必须是对象的公共函数。public,也就是首字母大写的函数3.RPC函数必须有2个参数,类型为公共类型,或go内嵌类型。4.RPC函数第2个参数作为返回值,必须是指针类型。5.RPC函数必须返回一个error类型的值。func
2013-12-31 16:17:06 6047
原创 go语言与excel的序列化与反序列化(1)
很多时候,尤其是游戏开发中,策划往往将文档,数据等写入excel中,程序,需要通过各种方式解析excel,让程序可以读。常见的方案有:1.将excel转换为csv,逗号分割方式,程序通过split逗号按照特定格式进行转换。(功能不够强大,格式要求很严,无法灵活配置很多特殊的功能)2.将excel转换为lua table。这是C++游戏开发的常用方式。 (无法通过c++对象序列化为exc
2013-12-30 22:17:18 4043
转载 安装openssl错误解决
安装openssl错误解决1.nmake -f ms\ntdll.mak在这一步出错 cl /Fotmp32dll\cryptlib.obj -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL
2013-12-26 17:38:51 8780
原创 go语言chan 和 routine活用
这里,我们以游戏中的一个情况为例。比如魔兽世界里的40人团队副本BOSS战,很多玩家同时攻击BOSS,BOSS的血量会进行平凡修改,我们要记录对BOSS的致命一击。常规 对BOSS血量的操作经行加锁,然后修改,每次攻击甚至还会判断怪物是否处于死亡状态以判断客户端是否能施放某个技能,但这样会让一个锁控制40个玩家的攻击操作,会导致攻击,技能等释放的不流畅。所以魔兽世界应该不是采用这种加锁的方式。为什
2013-12-23 14:25:25 12895 1
原创 go语言变参,匿名函数的多种用法
/** * Created by Administrator on 13-12-18. */package mainimport ( "fmt" "os")func f1(args ...interface {}) { f2(args...) f2(args[1:]...)}func f2(args ...interface {}) { for i, v := ra
2013-12-18 15:49:30 13545 1
原创 go语言string遍历细节
/** * Created by Administrator on 13-12-18. */package mainimport ( "fmt" "os")func main() { str := "hello, 世界" n := len(str) for i := 0; i < n; i++ { fmt.Fprintf(os.Stdout, "%d %v %
2013-12-18 14:24:37 4400
转载 Linux tcpdump命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc
2013-12-16 17:32:51 883
原创 关于云服务器
刚才和以前同学,聊到云服务器,分布式计算的问题。现在他用的hadoop的mapreduce。说实话hadoop的大名我的确有所耳闻。但可能处于某种偏执,我还是认为go语言是分布式,云计算的最佳选择。一个go语言分布式计算的雏形:可以用于理解chan,gorutinue,for,select的基础用法/** * Created by Administ
2013-12-11 15:11:02 1115
原创 go net 包详解1
/** * Created by Administrator on 13-12-9. */package mainimport ( "fmt" "os" "net")/** * 将string类型的ip地址转换为IP对象 */func main() { name := "192.168.1.97" ip := net.ParseIP(name) if ip
2013-12-10 17:27:51 15331 1
原创 cgo
package main/*#include #include char* sayHello(char* name) { char* buf = (char*) malloc(64); sprintf(buf,"hello %s\n", name); return buf;}*/import "C"import "fmt"import "unsafe"func m
2013-12-09 17:20:06 932
原创 通过chan控制多个goroutine
/** * Created by Administrator on 13-12-9. */package mainimport "fmt"import "time"func main() { closeChan := make(chan int, 3) go func() { i := 0 var flag int = 0 go func() { flag
2013-12-09 16:10:36 2382
原创 go语言编写,简单聊天室程序 1
go语言网络编程,先从聊天室开始:/** * Created by Vicky.H on 13-12-6. * [email protected] */package mainimport ( "fmt" "net" "strconv" "bytes" _ "bufio" _ "strings")var m map[string]*net.Connfu
2013-12-09 14:27:16 3281 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人