SANClient.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #ifndef CLIENT_H
  2. #define CLIENT_H
  3. #include <string>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <sys/socket.h>
  7. #include <arpa/inet.h>
  8. #include <sys/time.h>
  9. #include <math.h>
  10. #include <string.h>
  11. #include <unistd.h>
  12. #include <QDebug>
  13. #include <QThread>
  14. #include <time.h>
  15. const int KUniform = 0;
  16. const int KPoisson = 1;
  17. const int KBinomial = 2;
  18. const int KExponential = 3;
  19. #define DATA_LEN 1000
  20. class SANClient : public QThread
  21. {
  22. Q_OBJECT
  23. private:
  24. struct sockaddr_in iServAddr;
  25. int iClientSockFd;
  26. FILE *iFp;
  27. int iPort;
  28. std::string iIp;
  29. int iDistribution;
  30. double iSendRate;
  31. long long iCount;
  32. double iTotDelay;
  33. protected:
  34. virtual void run(void);
  35. public:
  36. //ctor
  37. SANClient();
  38. //dtor
  39. ~SANClient();
  40. public:
  41. //functions
  42. void SetDestnPort(int aPort);
  43. void SetDestnIp(std::string aIp);
  44. bool OpenFile(std::string aFileName);
  45. bool SetupConnection();
  46. bool ConnectToServer();
  47. void SendData();
  48. bool ReceiveData();
  49. void SetDistribution(int aDistribution);
  50. int GetDistribution();
  51. void SetSendRate(int aSendRate);
  52. int GetSendRate();
  53. int GetCount();
  54. void SetDelay(double aDelay);
  55. long double GetTotDelay();
  56. unsigned long iUSleep;
  57. signals:
  58. void EmitClientConnected(bool aStatus);
  59. void EmitDataSent(char *aBuf);
  60. };
  61. class SANReceive : public QThread
  62. {
  63. Q_OBJECT
  64. private:
  65. int iPort;
  66. char *iBuf;
  67. int iLen;
  68. struct sockaddr_in iClientAddr;
  69. int iServSockFd, iBlankSockFd;
  70. long long iCount;
  71. protected:
  72. virtual void run(void);
  73. public:
  74. //ctor
  75. SANReceive();
  76. //dtor
  77. ~SANReceive();
  78. public:
  79. //functions
  80. void SetPort(int aPort);
  81. int GetPort();
  82. bool SetupConnection();
  83. bool StartServer();
  84. int AcceptConnections();
  85. void RecvData();
  86. int GetCount();
  87. signals:
  88. void EmitClientAccepted(bool aStatus);
  89. void EmitServerStart(bool aStatus);
  90. void EmitDisplaySortedData(QString);
  91. };
  92. #endif // CLIENT_H