#ifndef sockaddr_in
#include <netinet/in.h>
#endif

typedef struct sockaddr_in u_buf_t;
int u_set_socket_timeout(int fd, double time);
int u_open_udp(u_port_t port);
void u_get_host_name(u_buf_t *ubufp, char *hostn, int hostnsize);
void u_get_host_info(u_buf_t *ubufp, char *info, int infosize);
int u_compare_host(u_buf_t *ubufp, char *hostn, u_port_t port);
ssize_t u_sendtohost(int fd, void *buf, size_t nbyte, char *hostn,
                     u_port_t port);
ssize_t u_sendto(int fd, void *buf, size_t nbyte, u_buf_t *ubufp);
ssize_t u_recvfrom(int fd, void *buf, size_t nbyte, u_buf_t *ubufp);
ssize_t u_recvfrom_timed(int fd, void *buf, size_t nbyte, u_buf_t *ubufp,
                         double time);
char * u_strerror(int errnum);
int u_join(char *IP_address, u_port_t port, u_buf_t *ubufp);
int u_leave(int mcastfd, u_buf_t *ubufp);

