Skip to content

Instantly share code, notes, and snippets.

@AlexsJones
Last active August 29, 2015 13:56
Show Gist options
  • Save AlexsJones/9110933 to your computer and use it in GitHub Desktop.
Save AlexsJones/9110933 to your computer and use it in GitHub Desktop.
Potential interface rework
typedef enum { IPV4, IPV6 } jnx_address_family;
typedef struct jnx_socket
{
int socket;
jnx_address_family addrfamily;
}jnx_socket;
typedef void (*listen_callback)(char*,size_t,char*);
typedef void (*broadcast_listen_callback)(char*,size_t);
jnx_socket *jnx_network_socket_create(jnx_address_family addr);
void jnx_network_socket_destroy(jnx_socket *s);
size_t jnx_network_send(jnx_socket *s,char* host, ssize_t port, char* msg, ssize_t msg_len);
size_t jnx_network_listen_create(jnx_socket *s,ssize_t port,ssize_t max_connections, listen_callback c);
void jnx_network_listen_destroy(void);
size_t jnx_network_broadcast(jnx_socket *s, ssize_t port,char *broadcastgroup,char *message,ssize_t msg_len);
void jnx_network_broadcast_listen_create(jnx_socket *s, ssize_t port,char *broadcastgroup, broadcast_listen_callback c);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment