tcp服务器 开启对服务器ip以及端口的监听
lis, err := net.Listen("tcp", ":6666") if err != nil { log.Fatalf("failed to listen:%v", err) } 用for循环从监听者处取发起拨号的连接
for { conn, err := lis.Accept() if err != nil { log.Fatalf("failed to accept:%v", err) continue } sendMessage(conn) time.Sleep(time.Second * 1) } 写两个函数用来收发消息
发消息:将需要发送的消息内容,通过相关的序列化操作,转化成字节流,将字节流通过write函数发送
func send(){ _,err := conn.Write([]byte(str)) if err != nil { log.Fatalf("failed to write:%v", err) } } 收消息:通过read函数将字节流读出来,然后通过相关的反序列化操作,得到想要的消息
func recv(){ b := make([]byte,1024) _,err := conn.
Read More →
英文学习链接 中文学习链接
submodule常用命令 新增:在当前库中没有submodule子模块,可以通过 git submodule add remote 添加子模块 删除:
git rm -fr submodule 删除 `./git/config` 文件中的相关submodule 删除 `./git/submodule` 中相关的子模块 新环境中拉取库中的子模块:
初始化`git submodule init` 更新`git submodule update` 拉取所有子模块的最新代码
git submodule foreach –recursive git pull origin master
git submodule update检出项目的指定版本(HEAD),并不指向一个分支。头指针和分支未绑定,是分离状态。 需要强制绑定
git branch -f master HEAD git checkout master 相关网页