mirror of
https://github.com/rkonfj/peerguard.git
synced 2024-08-11 11:00:25 +08:00
41 lines
620 B
Markdown
41 lines
620 B
Markdown
|
# 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.DefaultGenerateSeq)
|
||
|
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, nil)
|
||
|
defer session.Close()
|
||
|
|
||
|
muxConn, err := session.OpenStream()
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
|
||
|
// ...
|
||
|
```
|