implement a Listener.Accept() method

This commit is contained in:
Marten Seemann
2017-05-05 15:45:57 +08:00
parent 0bd3b61e6a
commit 30a0211243
6 changed files with 104 additions and 121 deletions

View File

@@ -33,26 +33,22 @@ func main() {
func echoServer() error {
cfgServer := &quic.Config{
TLSConfig: generateTLSConfig(),
ConnState: func(sess quic.Session, cs quic.ConnState) {
// Ignore unless the handshake is finished
if cs != quic.ConnStateForwardSecure {
return
}
go func() {
stream, err := sess.AcceptStream()
if err != nil {
panic(err)
}
// Echo through the loggingWriter
go io.Copy(loggingWriter{stream}, stream)
}()
},
}
listener, err := quic.ListenAddr(addr, cfgServer)
if err != nil {
return err
}
return listener.Serve()
sess, err := listener.Accept()
if err != nil {
return err
}
stream, err := sess.AcceptStream()
if err != nil {
panic(err)
}
// Echo through the loggingWriter
_, err = io.Copy(loggingWriter{stream}, stream)
return err
}
func clientMain() error {