Newer
Older
/*
*
* Created on: Mar 1, 2021
* Author: astrisw
*/
* Implementation of a UDP socket
* @member field fd_sock: socket file descriptor
* @member field sockaddr_in: struct of the client address.
*/
struct sockaddr_in cliaddr;
struct sockaddr_in srvaddr;
void split_ip_port(const std::string &ip_port, std::string &ip,
std::string &port);
int receiveAtLeastHeaderSizeBytes(uint8_t *buff, int headerSize,
int packetSize);
void resetPacket(PacketLib::BasePacket&, int bytes);
UDPProtocol(std::string ip, int prt);
UDPProtocol();
int connectToServer() override;
int connectToClient() override;
int closeConnectionToServer() override;
int closeConnectionToClient() override;
bool isConnectedToClient() const override;
bool isConnectedToServer() const override;
int receiveFromClient(PacketLib::BasePacket&) override;
int sendToServer(PacketLib::BasePacket&) override;
class UDPProtocolBuilder {
protected:
UDPProtocol *protocol;
public:
std::string config_target {"udpprotocol"};
std::string ip_key { "ip" };
std::string port_key { "port" };
UDPProtocolBuilder();
UDPProtocolBuilder(std::string ip, int port);
~UDPProtocolBuilder();
UDPProtocolBuilder* configFrom(Configurators::BaseConfigurator *conf);
UDPProtocolBuilder* setPort(int port);
UDPProtocol* getProtocol();