Handle stream in a goroutine

This commit is contained in:
Alexandre Iooss 2020-09-27 22:10:47 +02:00
parent e64f5105c9
commit 172b1c3a84
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
1 changed files with 19 additions and 7 deletions

View File

@ -1,7 +1,6 @@
package srt
import (
"fmt"
"log"
"github.com/haivision/srtgo"
@ -22,14 +21,27 @@ func Serve(cfg *Options) {
// FIXME: cfg.ListenAddress -> host and port
sck := srtgo.NewSrtSocket("0.0.0.0", 9710, options)
sck.Listen(1)
s, _ := sck.Accept()
buff := make([]byte, 2048)
for {
n, _ := s.Read(buff, 10000)
if n == 0 {
break
s, err := sck.Accept()
if err != nil {
log.Println("Error occured while accepting request:", err)
}
fmt.Printf("Received %d bytes", n)
go func() {
buff := make([]byte, 2048)
for {
n, err := s.Read(buff, 10000)
if err != nil {
log.Println("Error occured while reading SRT socket:", err)
break
}
if n == 0 {
// End of stream
break
}
log.Printf("Received %d bytes", n)
}
}()
}
}