12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package tcp
- import (
- "errors"
- "net"
- "server/dao/devices"
- "server/utils/logger"
- "strings"
- )
- var ScreenList []devices.Screens
- func ListenTcp() {
- // 监听当前的tcp连接
- listen, err := net.Listen("tcp", "0.0.0.0:9200")
- if err != nil {
- logger.Logger.Errorf("listen failed, err:%v", err)
- return
- }
- for {
- conn, err := listen.Accept() // 建立连接
- if err != nil {
- logger.Logger.Errorf("Accept failed, err:%v", err)
- continue
- }
- err = CheckConn(conn)
- if err != nil {
- continue
- }
- }
- }
- func CheckConn(conn net.Conn) error {
- logger.Logger.Debugf("StartDevice addr:%s", conn.RemoteAddr().String())
- arr := strings.Split(conn.RemoteAddr().String(), ":")
- ip := arr[0]
- ScreenList = devices.QueryAllScreens()
- for _, v := range ScreenList {
- if v.IPAddress == ip {
- dev := Device{info: v}
- dev.Start(conn)
- return nil
- }
- }
- return errors.New("not found")
- }
|