add cmdTerminate

This commit is contained in:
xtaci
2016-08-31 18:24:44 +08:00
parent 5b282659b1
commit 96bc04bf8f
2 changed files with 18 additions and 10 deletions
+3
View File
@@ -118,6 +118,9 @@ func (s *Session) Close() error {
for k := range s.streams {
s.streams[k].Close()
}
f := newFrame(cmdTerminate, 0)
bts, _ := f.MarshalBinary()
s.lw.Write(bts)
}
return nil
}
+15 -10
View File
@@ -3,6 +3,7 @@ package smux
import (
"fmt"
"io"
"log"
"net"
"sync"
"testing"
@@ -34,17 +35,21 @@ func init() {
func handleConnection(conn net.Conn) {
session, _ := Server(conn, maxFrames, frameSize)
for {
stream, _ := session.AcceptStream()
go func(s io.ReadWriteCloser) {
buf := make([]byte, 65536)
for {
n, err := s.Read(buf)
if err != nil {
return
if stream, err := session.AcceptStream(); err == nil {
go func(s io.ReadWriteCloser) {
buf := make([]byte, 65536)
for {
n, err := s.Read(buf)
if err != nil {
return
}
s.Write(buf[:n])
}
s.Write(buf[:n])
}
}(stream)
}(stream)
} else {
log.Println(err)
return
}
}
}