peerguard/connmux
2024-08-09 21:12:19 +08:00
..
connmux_test.go connmux: add mux fuzz testing 2024-07-20 12:13:28 +08:00
connmux.go connmux: sync FIN state detect and data write 2024-08-09 21:12:19 +08:00
README.md connmux: add odd/even seq generator 2024-06-22 20:54:14 +08:00

connmux

A connection multiplexing library

Example

client

c, err := net.Dial("tcp", "192.168.3.99:7676")
if err != nil {
    panic(err)
}

session := connmux.Mux(c, connmux.SeqOdd)
defer session.Close()
for {
    muxC, err := session.Accept()
    if err != nil {
        panic(err)
    }
    go handleConn(muxC)
}

server

l, err := net.Listen("tcp", ":7676")
if err != nil {
    panic(err)
}
c, err := l.Accept()
if err != nil {
    panic(err)
}
session := connmux.Mux(c, connmux.SeqEven)
defer session.Close()

muxConn, err := session.OpenStream()
if err != nil {
    panic(err)
}

// ...