Files
dat-thang/extra/dat-dpi/inc/dat_net.h
T

36 lines
978 B
C
Raw Normal View History

2026-10-19 00:12:36 -04:00
#ifndef DAT_NET_H
#define DAT_NET_H
#include <stdint.h>
#include <stddef.h>
#include "dat_socket.h"
#define DATNET_PORT 3282
#define DATNET_MAX_PACKET 1400
#define DATNET_TOPIC_BYTES 32
#define DATNET_PEERID_BYTES 32
typedef struct {
dat_socket_t fd;
struct sockaddr_storage addr;
socklen_t addrlen;
uint8_t id[DATNET_PEERID_BYTES];
} dat_peer_t;
typedef struct datnet {
dat_socket_t sock;
uint8_t topic[DATNET_TOPIC_BYTES];
uint8_t peerid[DATNET_PEERID_BYTES];
void *context;
void (*on_message)(struct datnet *net, dat_peer_t *peer, const uint8_t *msg, size_t len);
} datnet_t;
int datnet_init(datnet_t *net, const uint8_t topic[DATNET_TOPIC_BYTES],
const uint8_t peerid[DATNET_PEERID_BYTES]);
int datnet_bind(datnet_t *net, const char *host, uint16_t port);
int datnet_poll(datnet_t *net, int timeout_ms);
int datnet_send(datnet_t *net, const dat_peer_t *peer,
const uint8_t *message, size_t length);
int datnet_close(datnet_t *net);
#endif /* DAT_NET_H */