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

 

posted @ 2020-05-18 08:51  Jary霸  阅读(542)  评论(0编辑  收藏  举报