美文网首页
go客户端内容接收

go客户端内容接收

作者: 大雁儿 | 来源:发表于2017-06-13 20:29 被阅读41次

最近用lua写了服务端,为了测试在网上找了用go写的客户端收发信息的内容,这个比较容易就在此记录下。
main函数内容


var msg_read_chan chan bytes.Buffer
var msg_writer_chan chan bytes.Buffer

func init()  {
}


func main(){
    fmt.Println("Start connect...")
    conn,err :=net.Dial("tcp","127.0.0.1:8000")
    util.CheckErrorOrExit(err)
    defer conn.Close()

    //读写channel
    msg_read_chan = make(chan bytes.Buffer,32)
    msg_writer_chan = make(chan bytes.Buffer,32)

    go nws.ReadRoutine(&conn,&msg_read_chan)
    go nws.WriteRoutine(&conn,&msg_writer_chan)


    handler_msg_routine(&msg_read_chan)

}

func handler_msg_routine(msg_chan *chan bytes.Buffer)  {
    for{
        fmt.Println("waiting msg ...")
        msg_raw := <-msg_read_chan
        msg :=(*bytes.Buffer)(&msg_raw)
        fmt.Println("got msg:",msg)
    }
}

读写操作

//读操作
func ReadRoutine(conn *net.Conn,reader *chan bytes.Buffer)  {
    msg_feedback := bytes.NewBuffer(nil)
    var buf [512]byte

    for{
        transferred, err :=(*conn).Read(buf[0:])
        util.CheckErrorOrExit(err)

        msg_feedback.Write(buf[0:transferred])

        *reader  <- *msg_feedback

        fmt.Println("reseted")
        //处理完一个msg,重置
        msg_feedback.Reset()
    }
}

func WriteRoutine(conn *net.Conn,writer *chan bytes.Buffer)  {
    for{
        msg:= <- *writer
        msg2 := (bytes.Buffer)(msg)
        (*conn).Write(msg2.Bytes())
    }
}

相关文章

  • go客户端内容接收

    最近用lua写了服务端,为了测试在网上找了用go写的客户端收发信息的内容,这个比较容易就在此记录下。main函数内...

  • HTTP请求中的请求头和响应头详解

    | Header | 解释 | 示例 || Accept | 指定客户端能够接收的内容类型 | Accept: t...

  • HTTP Header 详解

    本文介绍 HTTP Header。 Request Accept客户端能够接收的内容类型。示例:Accept: t...

  • 请求头和响应头总结

    Header解释示例 Accept指定客户端能够接收的内容类型Accept: text/plain, text/h...

  • Go upload file

    简介 这篇文章主要介绍使用 Go 语言来实现客户端上传文件和服务端处理接收文件的功能。 1) Client 端上传...

  • go tcp server client及粘包拆包处理

    先上代码server.go controller.go network.go 客户端client.go

  • 复习Activity的启动模式、任务栈以及使用场景

    应用场景: singleTop 适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个...

  • HTTP请求头字段

    Accept: 浏览器(或者其他基于HTTP的客户端程序)可以接收的内容类型(Content-types),例如 ...

  • 4.Thrift指南 实战go客户端

    前言:上一遍文章实现了go服务端,这里继续实现go客户端。 1.开发客户端代码2.测试rpc客户端 1.开发客户端...

  • Netty中的永动机

    永动机即'永远运动的机器'. 作为服务端时, 需要接收客户端的连接, 需要接收客户端的数据, 或者向客户端发送数据...

网友评论

      本文标题:go客户端内容接收

      本文链接:https://www.haomeiwen.com/subject/bcdjqxtx.html