ouster_clib v1.0
C library for Ouster LiDAR
Loading...
Searching...
No Matches
ouster_net.h
1
9#ifndef OUSTER_NET_H
10#define OUSTER_NET_H
11
12#include <stdint.h>
13
14// #define INET6_ADDRSTRLEN 46
15#define OUSTER_NET_ADDRSTRLEN 46
16#define OUSTER_NET_UDP_MAX_SIZE 65535
17#define OUSTER_NET_FLAGS_NONBLOCK 0x0001
18#define OUSTER_NET_FLAGS_REUSE 0x0002
19#define OUSTER_NET_FLAGS_IPV6ONLY 0x0004
20#define OUSTER_NET_FLAGS_IPV4 0x0008
21#define OUSTER_NET_FLAGS_IPV6 0x0010
22#define OUSTER_NET_FLAGS_UDP 0x0020
23#define OUSTER_NET_FLAGS_TCP 0x0040
24#define OUSTER_NET_FLAGS_BIND 0x0100
25#define OUSTER_NET_FLAGS_CONNECT 0x0200
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31typedef struct
32{
33 int flags;
34 int rcvbuf_size;
35 int port;
36 char const *hint_service;
37 char const *hint_name;
38 int rcvtimeout_sec;
39 char const *group;
41
42typedef struct
43{
44 char data[OUSTER_NET_ADDRSTRLEN];
46
52void ouster_net_addr_set_ip4(ouster_net_addr_t *addr, char const *ip);
53
60
71int ouster_net_sendto(int sock, char *buf, int size, int flags, ouster_net_addr_t *addr);
72
73int ouster_net_create(ouster_net_sock_desc_t *desc);
74
75int64_t ouster_net_read(int sock, char *buf, int len);
76
77uint64_t ouster_net_select(int socks[], int n, const int timeout_sec, const int timeout_usec);
78
79int32_t ouster_net_get_port(int sock);
80
81#ifdef __cplusplus
82}
83#endif
84
85#endif // OUSTER_NET_H
86
void ouster_net_addr_set_port(ouster_net_addr_t *addr, int port)
Set a port.
int ouster_net_sendto(int sock, char *buf, int size, int flags, ouster_net_addr_t *addr)
Send data from a socket to a network address.
void ouster_net_addr_set_ip4(ouster_net_addr_t *addr, char const *ip)
Set a IPv4 address.