mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-16 05:10:59 +08:00
Initial commit
This commit is contained in:
36
pkg/tcp/server.go
Normal file
36
pkg/tcp/server.go
Normal file
@@ -0,0 +1,36 @@
|
||||
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()
|
||||
}
|
Reference in New Issue
Block a user