package reportService import ( "net" "time" ) // UpToServer 上报数据到平台 func UpToServer(host, port, date string) (res string, err error) { var ( mConn *net.TCPConn tcpAddr *net.TCPAddr ) info := "" res = "" if len(port) > 0 { info = host + ":" + port } else { info = host } writeTimeout := 5 * time.Second readTimeout := 5 * time.Second rxd := make([]byte, 1024) tcpAddr, err = net.ResolveTCPAddr("tcp", info) if err != nil { //fmt.Println("ResolveTCPAddr err") return } mConn, err = net.DialTCP("tcp", nil, tcpAddr) if err != nil { return } defer func(mConn *net.TCPConn) { _ = mConn.Close() }(mConn) //fmt.Println("myConn :") err = mConn.SetReadDeadline(time.Now().Add(readTimeout)) // timeout if err != nil { return } err = mConn.SetWriteDeadline(time.Now().Add(writeTimeout)) // timeout if err != nil { return } _, err = mConn.Write([]byte(date)) if err != nil { return } _, err = mConn.Read(rxd) if err != nil { //tcp send ok but no replay err = nil return } res = string(rxd) return }