首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
拉勾
V2EX  ›  Go

Golang 写一个简易版多人聊天室,望指点

  •  
  •   Zeffee · 2016-04-25 17:04:14 +08:00 · 651 次点击
    这是一个创建于 1060 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.新手一枚,用空余时间写了个简易的多人聊天程序。写完但不知代码质量如何,望大牛们能指点下可改进的地方。

    附上地址: https://github.com/sostuts/Chat

    2.另外,请教下 tcp 接收信息的时候,除了 length,_:= net.Conn.Read() 可以获取到信息长度,还有其他方法吗?

    7 回复  |  直到 2016-05-08 19:38:53 +08:00
        1
    chzyer   2016-04-25 22:25:34 +08:00
    最常见都是通过 length + payload 来做协议的,而且 Write() 一次有可能需要多次 Read() 才能读完,所以一般的接收端代码是这样的

    var length int32
    binary.Read(conn, binary.Bigdian, &length)
    payload := make([]byte, int(length))
    io.ReadFull(conn, payload)
        2
    Zeffee   2016-04-25 22:29:35 +08:00 via Android
    没人回😳
        3
    Zeffee   2016-04-25 22:32:09 +08:00 via Android
    @chzyer 我回去试下, thx👌
        4
    susanDao   2016-04-26 09:15:35 +08:00
    刚上手 go ,学习之。。
        5
    Zeffee   2016-04-26 20:46:02 +08:00
    @susanDao 我也是接触 Go 差不多两周时间,,感觉 Go 还是挺不错的
        6
    oreo   2016-05-07 16:19:27 +08:00
    可以,正好没东西.
        7
    Zeffee   2016-05-08 19:38:53 +08:00 via Android
    @oreo ???
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3619 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 16ms · UTC 04:04 · PVG 12:04 · LAX 21:04 · JFK 00:04
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1