// @version 1.0
// @since 2017-01-09
-class IoTUDP
+class IoTUDP final
{
// IoTUDP class properties
private:
+ UDPSocket *socket;
string strHostAddress;
int iSrcPort;
int iDstPort;
- UDPSocket *socket;
bool didClose;
+ int timeOut;
public:
// Constructor
- IoTUDP(IoTDeviceAddress iotDevAdd) {
+ IoTUDP(IoTDeviceAddress* iotDevAdd) {
- strHostAddress = iotDevAdd.getAddress();
- iSrcPort = iotDevAdd.getSourcePortNumber();
- iDstPort = iotDevAdd.getDestinationPortNumber();
+ strHostAddress = iotDevAdd->getAddress();
+ iSrcPort = iotDevAdd->getSourcePortNumber();
+ iDstPort = iotDevAdd->getDestinationPortNumber();
+ timeOut = 0;
socket = new UDPSocket(iSrcPort);
if (socket == NULL) {
}
+ string getHostAddress() {
+ return strHostAddress;
+ }
+
+
+ int getSourcePort() {
+ return iSrcPort;
+ }
+
+
+ int getDestinationPort() {
+ return iDstPort;
+ }
+
+
+ void setTimeOut(int interval) {
+
+ timeOut = interval;
+ }
+
+
// Send data packet
void sendData(const void* buffer, int bufferLen) {
-
- unsigned short destinationPort = (unsigned short) iDstPort;
+ unsigned short destinationPort = (unsigned short) iDstPort;
socket->sendTo(buffer, bufferLen, strHostAddress, destinationPort);
}
// Receive data packet
int receiveData(void* buffer, int iMaxDataLength) {
-
unsigned short destinationPort = (unsigned short) iDstPort;
- socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort);
+ //return socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort);
+ return socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort, timeOut);
}
};
#endif