service.go 1.0 KB

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