Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "flag"
  6. "sync"
  7. "time"
  8. "net"
  9. )
  10.  
  11. var Hostname string
  12. var Port string
  13. var numberOfDevices int
  14. var wg sync.WaitGroup
  15.  
  16. func init() {
  17. flag.IntVar(&numberOfDevices, "devices", 25000, "specify how many devices to simulate")
  18. flag.StringVar(&Hostname, "hostname", "localhost", "dns entry for clearblade")
  19. flag.StringVar(&Port, "port", "1883", "mqtt port for clearblade")
  20. flag.Parse()
  21. }
  22.  
  23. func main() {
  24. var arrayClients []net.Conn
  25. isErr := false
  26. i := 0
  27. fmt.Printf("Connected clients are %d\n", len(arrayClients))
  28. wg.Add(numberOfDevices)
  29. for i < numberOfDevices {
  30. go func(v int) {
  31. start := time.Now()
  32. fmt.Printf("Connecting client # %d\n", v)
  33. conn, err := net.Dial("tcp", Hostname + ":" + Port)
  34. if err != nil {
  35. fmt.Printf("Got error connecting client: %s\n", err.Error())
  36. isErr = true
  37. return
  38. }
  39. arrayClients = append(arrayClients, conn)
  40. fmt.Printf("Array elemets are %d\n", len(arrayClients))
  41. fmt.Printf("Connected client # %d\n", v)
  42. end := time.Now()
  43. required := end.Sub(start)
  44. wg.Done()
  45. fmt.Printf("Time is %s\n", required.String())
  46. wg.Wait()
  47. }(i)
  48. if isErr {
  49. break
  50. }
  51. time.Sleep(time.Millisecond * 20)
  52. i = i + 1
  53. }
  54. for {
  55. fmt.Printf("Connected clients are %d\n", len(arrayClients))
  56. time.Sleep(time.Second * 5)
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement