Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
net.h File Reference
#include <banjo/api.h>
#include <banjo/error.h>
Include dependency graph for net.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BJ_ADDR_STRLEN   46
#define BJ_NET_BACKLOG_DEFAULT   0
#define BJ_NET_BACKLOG_MAX   (-1)

Enumerations

enum  bj_net_hints {
  BJ_NET_NOHINT = 0x0 , BJ_RESOLVE_IPV4 = 0x01 , BJ_RESOLVE_IPV6 = 0x02 , BJ_EXCLUSIVE_BIND = 0x04 ,
  BJ_TCP_DELAY_ACK = 0x08 , BJ_NONBLOCKING = 0x10 , BJ_BROADCAST = 0x20
}
enum  bj_net_shutdown { BJ_SHUTDOWN_RECEIVE = 0x01 , BJ_SHUTDOWN_SEND = 0x02 , BJ_SHUTDOWN_BOTH = 0x03 }

Functions

struct bj_tcp_listenerbj_listen_tcp (const char *host, uint16_t port, uint16_t hint, int backlog, struct bj_error **error)
struct bj_tcp_streambj_connect_tcp (const char *host, uint16_t port, uint16_t hint, uint32_t ms_timeout, struct bj_error **error)
struct bj_tcp_streambj_connect_tcp_to (struct bj_address *addr, uint16_t hints, uint32_t ms_timeout, struct bj_error **error)
struct bj_tcp_streambj_accept_tcp (struct bj_tcp_listener *listener, uint32_t ms_timeout, struct bj_error **error)
int bj_tcp_recv (struct bj_tcp_stream *stream, void *buf, size_t len)
int bj_tcp_peek (struct bj_tcp_stream *stream, void *buf, size_t len)
int bj_tcp_send (struct bj_tcp_stream *stream, const void *buf, size_t len)
void bj_tcp_shutdown (struct bj_tcp_stream *stream, int mode)
bj_bool bj_set_tcp_keepalive (struct bj_tcp_stream *stream, bj_bool enable)
bj_bool bj_get_tcp_keepalive (struct bj_tcp_stream *stream)
bj_bool bj_tcp_wait (struct bj_tcp_stream *stream, uint32_t ms_timeout)
bj_bool bj_set_tcp_recv_timeout (struct bj_tcp_stream *stream, uint32_t ms_timeout)
uint32_t bj_get_tcp_recv_timeout (struct bj_tcp_stream *stream)
bj_bool bj_set_tcp_send_timeout (struct bj_tcp_stream *stream, uint32_t ms_timeout)
uint32_t bj_get_tcp_send_timeout (struct bj_tcp_stream *stream)
void bj_close_tcp_stream (struct bj_tcp_stream *stream)
void bj_close_tcp_listener (struct bj_tcp_listener *listener)
size_t bj_tcp_peer_address (const struct bj_tcp_stream *stream, char *buf, size_t size)
size_t bj_tcp_local_address (const struct bj_tcp_stream *stream, char *buf, size_t size)
uint16_t bj_tcp_listener_port (const struct bj_tcp_listener *listener)
int bj_tcp_available (struct bj_tcp_stream *stream)
Address Resolution Functions
struct bj_addressbj_resolve_address (const char *host, uint16_t port, uint16_t hints, struct bj_error **error)
size_t bj_address_string (const struct bj_address *addr, char *buf, size_t size)
uint16_t bj_address_port (const struct bj_address *addr)
bj_bool bj_address_equals (const struct bj_address *a, const struct bj_address *b)
size_t bj_address_count (const struct bj_address *addr)
bj_bool bj_address_next (struct bj_address *addr)
void bj_address_reset (struct bj_address *addr)
void bj_free_address (struct bj_address *addr)
UDP Functions
struct bj_udpbj_open_udp (const char *host, uint16_t port, uint16_t hints, struct bj_error **error)
void bj_close_udp (struct bj_udp *udp)
int bj_udp_send (struct bj_udp *udp, const char *host, uint16_t port, const void *data, size_t len, struct bj_error **error)
int bj_udp_send_to (struct bj_udp *udp, const struct bj_address *addr, const void *data, size_t len, struct bj_error **error)
struct bj_datagrambj_udp_recv (struct bj_udp *udp, struct bj_error **error)
bj_bool bj_udp_available (struct bj_udp *udp)
bj_bool bj_udp_wait (struct bj_udp *udp, uint32_t ms_timeout)
uint16_t bj_udp_local_port (const struct bj_udp *udp)
size_t bj_udp_local_address (const struct bj_udp *udp, char *buf, size_t size)
Datagram Accessors
size_t bj_datagram_addr (const struct bj_datagram *dgram, char *buf, size_t size)
uint16_t bj_datagram_port (const struct bj_datagram *dgram)
const void * bj_datagram_data (const struct bj_datagram *dgram)
size_t bj_datagram_len (const struct bj_datagram *dgram)
void bj_close_datagram (struct bj_datagram *dgram)
Network Simulation
void bj_tcp_simulate_loss (struct bj_tcp_stream *stream, int percent)
void bj_udp_simulate_loss (struct bj_udp *udp, int percent)

Detailed Description

Header file for network API.