go4
常量:
goroutine:
管道:
只有三种引用类型:slice(切片)、map(字典)、channel(管道),都要make
取多了但是没有解决方法,就会报错,若有解决方法,则阻塞等待:
select用case试探,防止报告fatal错误:
注意case不是从上到下顺序来的
若单个线程出错,用recover处理:
反射:
练习1:
下面的rVal.Int()返回的是int64类型的
Type和Kind:
反射修改变量:
反射获取结构体信息:
注意反射只能操纵首字母大写的方法
网络编程
跟踪网络:
端口:
查看百度80端口是否在监听:
服务器:
客户端:
简化版:
服务器:
客户端:
Redis:
启动服务器:
启动客户端:
设置时间一旦超过就清空信息:
lpush:
左边箭头从左添加lpush,右边箭头从右添加rpush
不必记住链表之间的箭头,只用记住像个双向队列
弹出一个:
go操作Redis:
需要import(
"github.com/garyburd/redigo/redis"
)
这里的set大小写无所谓:
连接池
其它有几个需要注意的地方:
MaxActive 最大连接数,即最多的tcp连接数,一般建议往大的配置。
MaxIdle 最大空闲连接数,即会有这么多个连接提前等待着,但过了超时时间也会关闭。
海量用户通信系统
建立一个文件显示界面,另一个文件处理登录逻辑,注意switch里面的break只能跳出switch
在gopath路径下,直接对client文件夹build,并指定文件名才能运行。该client文件夹包括login.go和main.go