Go 网络库:go link

jopen 9年前

link 是简单的 GO 网络库,专注于基于数据包的持久连接通讯。link 提供一个数据包分割协议,比如 Erlang 默认的 {packet: N} ,同时还支持自定义数据包分割协议。但是 link 不会限制编码或者解码格式的请求和应答。这个库还提供会话管理和播放功能。

Choose a protocol for your project.

proto := link.PacketN(2, binary.BigEndian) 

Setup a server on port 8080 and set protocol.

server, _ := link.Listen("tcp", "0.0.0.0:8080", proto) 

Handle incoming connections. And setup a message handler on the new session.

server.AcceptLoop(func(session *Session) {      fmt.Println("session start")        session.ReadLoop(func(session *Session, msg []byte) {          fmt.Printf("new message: %s\n", msg)      })        fmt.Println("session closed")  })

Use the same protocol dial to the server.

 proto := link.PacketN(2, binary.BigEndian)    client, _ := link.Dial("tcp", "127.0.0.1:8080", proto)

Send a message to server.

client.Send(link.Binary("Hello World!")) 

项目主页:http://www.open-open.com/lib/view/home/1411390194125