mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-05 00:12:48 +08:00
37 lines
514 B
Go
37 lines
514 B
Go
package tcp
|
|
|
|
import (
|
|
"github.com/AlexxIT/go2rtc/pkg/streamer"
|
|
"net"
|
|
)
|
|
|
|
type Server struct {
|
|
streamer.Element
|
|
|
|
listener net.Listener
|
|
closed bool
|
|
}
|
|
|
|
func NewServer(address string) (srv *Server, err error) {
|
|
srv = &Server{}
|
|
srv.listener, err = net.Listen("tcp", address)
|
|
return
|
|
}
|
|
|
|
func (s *Server) Serve() {
|
|
for {
|
|
conn, err := s.listener.Accept()
|
|
if err != nil {
|
|
return
|
|
}
|
|
go func() {
|
|
s.Fire(conn)
|
|
_ = conn.Close()
|
|
}()
|
|
}
|
|
}
|
|
|
|
func (s *Server) Close() error {
|
|
return s.listener.Close()
|
|
}
|