26 #include <sys/socket.h> 27 #include <netinet/in.h> 28 #include <netinet/tcp.h> 29 #include <arpa/inet.h> 30 #include <sys/select.h> 34 SocketAPM(
bool _datagram);
35 SocketAPM(
bool _datagram,
int _fd);
38 bool connect(
const char *address, uint16_t port);
39 bool bind(
const char *address, uint16_t port);
41 void set_blocking(
bool blocking);
42 void set_broadcast(
void);
44 ssize_t send(
const void *pkt,
size_t size);
45 ssize_t sendto(
const void *buf,
size_t size,
const char *address, uint16_t port);
46 ssize_t recv(
void *pkt,
size_t size, uint32_t timeout_ms);
49 void last_recv_address(
const char *&ip_addr, uint16_t &port);
52 bool pollin(uint32_t timeout_ms);
55 bool pollout(uint32_t timeout_ms);
58 bool listen(uint16_t backlog);
62 SocketAPM *accept(uint32_t timeout_ms);
66 struct sockaddr_in in_addr {};
70 void make_sockaddr(
const char *address, uint16_t port,
struct sockaddr_in &sockaddr);
73 #endif // HAL_OS_SOCKETS