22 #ifndef UDPDATAGRAMSERVICE_H_
23 #define UDPDATAGRAMSERVICE_H_
27 #include <ibrcommon/net/vsocket.h>
28 #include <ibrcommon/net/vinterface.h>
57 virtual void send(
const char &type,
const char &flags,
const unsigned int &seqno,
const std::string &address,
const char *buf,
size_t length)
throw (
DatagramException);
64 virtual void send(
const char &type,
const char &flags,
const unsigned int &seqno,
const char *buf,
size_t length)
throw (
DatagramException);
74 virtual size_t recvfrom(
char *buf,
size_t length,
char &type,
char &flags,
unsigned int &seqno, std::string &address)
throw (
DatagramException);
87 virtual const ibrcommon::vinterface&
getInterface()
const;
102 void send(
const char &type,
const char &flags,
const unsigned int &seqno,
const ibrcommon::vaddress &destination,
const char *buf,
size_t length)
throw (
DatagramException);
104 static const std::string encode(
const ibrcommon::vaddress &address,
const int port = 0);
105 static void decode(
const std::string &identifier, ibrcommon::vaddress &address);
107 ibrcommon::vsocket _vsocket;
109 const static int BROADCAST_PORT = 5551;
110 const static ibrcommon::vaddress BROADCAST_ADDR;
112 ibrcommon::multicastsocket *_msock;
114 const ibrcommon::vinterface _iface;
115 const int _bind_port;
UDPDatagramService(const ibrcommon::vinterface &iface, int port, size_t mtu=1280)
virtual const ibrcommon::vinterface & getInterface() const
virtual ~UDPDatagramService()
virtual size_t recvfrom(char *buf, size_t length, char &type, char &flags, unsigned int &seqno, std::string &address)
virtual const std::string getServiceDescription() const
virtual void send(const char &type, const char &flags, const unsigned int &seqno, const std::string &address, const char *buf, size_t length)
virtual dtn::core::Node::Protocol getProtocol() const
virtual const DatagramService::Parameter & getParameter() const