11 namespace rp{
namespace net {
18 ADDRESS_TYPE_UNSPEC = 0,
19 ADDRESS_TYPE_INET = 1,
20 ADDRESS_TYPE_INET6 = 2,
28 SocketAddress(
const char * addrString,
int port, address_type_t = ADDRESS_TYPE_INET);
40 virtual u_result setAddressFromString(
const char * address_string, address_type_t = ADDRESS_TYPE_INET);
41 virtual u_result getAddressAsString(
char * buffer,
size_t buffersize)
const;
43 virtual address_type_t getAddressType()
const;
45 virtual u_result getRawAddress(
_u8 * buffer,
size_t bufferSize)
const;
48 return _platform_data;
51 virtual void setLoopbackAddress(address_type_t = ADDRESS_TYPE_INET);
52 virtual void setBroadcastAddressIPv4();
53 virtual void setAnyAddress(address_type_t = ADDRESS_TYPE_INET);
56 static size_t LoopUpHostName(
const char * hostname,
const char * sevicename, std::vector<SocketAddress> &addresspool ,
bool performDNS =
true, address_type_t = ADDRESS_TYPE_INET);
106 static StreamSocket * CreateSocket(socket_family_t family = SOCKET_FAMILY_INET);
110 virtual u_result listen(
int backlog = MAX_BACKLOG) = 0;
112 virtual u_result waitforIncomingConnection(
_u32 timeout = DEFAULT_SOCKET_TIMEOUT) = 0;
114 virtual u_result send(
const void * buffer,
size_t len) = 0;
116 virtual u_result recv(
void *buf,
size_t len,
size_t & recv_len) = 0;
122 virtual u_result enableKeepAlive(
bool enable =
true) = 0;
124 virtual u_result enableNoDelay(
bool enable =
true) = 0;
140 virtual u_result recvFrom(
void *buf,
size_t len,
size_t & recv_len,
SocketAddress * sourceAddr = NULL) = 0;
141 virtual u_result clearRxCache() = 0;