From 172b1c3a8416bfcbfe00e10cd20b5aa5440f1cfc Mon Sep 17 00:00:00 2001 From: Alexandre Iooss Date: Sun, 27 Sep 2020 22:10:47 +0200 Subject: [PATCH] Handle stream in a goroutine --- stream/srt/srt.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/stream/srt/srt.go b/stream/srt/srt.go index 1b85728..88e1592 100644 --- a/stream/srt/srt.go +++ b/stream/srt/srt.go @@ -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) + } + }() } }