简单的tcp实例

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常用命令 新增:在当前库中没有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 相关网页