service.go 972 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package iotReportService
  2. import (
  3. "net"
  4. "time"
  5. )
  6. // UpToServer 上报数据到平台
  7. func UpToServer(host, date string) (res string, err error) {
  8. var (
  9. mConn *net.TCPConn
  10. tcpAddr *net.TCPAddr
  11. )
  12. writeTimeout := 5 * time.Second
  13. readTimeout := 5 * time.Second
  14. rxd := make([]byte, 1024)
  15. tcpAddr, err = net.ResolveTCPAddr("tcp", host)
  16. if err != nil {
  17. //fmt.Println("ResolveTCPAddr err")
  18. return
  19. }
  20. mConn, err = net.DialTCP("tcp", nil, tcpAddr)
  21. if err != nil {
  22. return
  23. }
  24. defer func(mConn *net.TCPConn) {
  25. _ = mConn.Close()
  26. }(mConn)
  27. //fmt.Println("myConn :")
  28. err = mConn.SetReadDeadline(time.Now().Add(readTimeout)) // timeout
  29. if err != nil {
  30. return
  31. }
  32. err = mConn.SetWriteDeadline(time.Now().Add(writeTimeout)) // timeout
  33. if err != nil {
  34. return
  35. }
  36. _, err = mConn.Write([]byte(date))
  37. if err != nil {
  38. return
  39. }
  40. _, err = mConn.Read(rxd)
  41. if err != nil {
  42. //tcp send ok but no replay
  43. err = nil
  44. return
  45. }
  46. res = string(rxd)
  47. return
  48. }