sock-udp (Socket UDP)ï
Header: udo/sock-udp.h
Table of contents (click to go)ï
Macrosï
Enumsï
Unionsï
Structsï
Functionsï
API Documentationï
udo_sock_udp (private)ï
Structure defining UDO Socket UDP context.
-
struct udo_sock_udpï
-
struct udo_log_error_struct err;ï
-
bool free;ï
-
int fd;ï
-
char ip_addr[INET6_ADDRSTRLEN];ï
-
int port;ï
-
struct sockaddr_in6 addr;ï
err- Stores information about the error that occuredfor the given context and may later be retrievedby caller.
freefd- File descriptor to the open UDP socket
ip_addr- Textual network IP address to sendto(2)/recvfrom(2).
port- Network port number to sendto(2)/recvfrom(2) with.
addr- Stores IPV6 network byte information about the UDP socket context.
-
struct udo_log_error_struct err;ï
udo_sock_udp_server_create_infoï
Structure passed to
udo_sock_udp_server_create()used to define how to create the server.
-
struct udo_sock_udp_server_create_infoï
-
ipv6- Boolean to determine if a socket is soley an ipv6socket or requires an ipv4-mapped-ipv6-address.
ip_addr- Textual network IP address to recvfrom(2)/sendto(2) data with.
port- Network port to recvfrom(2)/sendto(2) data with.
udo_sock_udp_server_createï
-
struct udo_sock_udp *udo_sock_udp_server_create(struct udo_sock_udp *sock, const void *sock_info);ï
Creates a socket that may be utilized for server socket operations.
Param
Decription
sock
IfNULLmemory will be allocated and return tocaller. If notNULLaddress passed will be usedto store the newly createdstructudo_sock_udpcontext.sock_info
Implementation uses a pointer to astructudo_sock_udp_server_create_info.
- Returns:
on success: Pointer to astructudo_sock_udpon failure:NULL
udo_sock_udp_server_acceptï
-
int udo_sock_udp_server_accept(struct udo_sock_udp *sock, const struct sockaddr_in6 *addr, const unsigned char ipv6);ï
Creates file descriptor that can filter for
addr data comming to server file descriptor.Useful to utilize in an epoll(2) event loop
if caller wants to implement tcp like event
handling with UDP sockets.
Param
Decription
sock
Must pass a pointer to astructudo_sock_udp.addr
Must pass a pointer to a populatedstructsockaddr_in6.ipv6
Boolean determines if created socket is soley an ipv6socket or requires an ipv4-mapped-ipv6-address.
- Returns:
on success: Open file descriptor to filtered socketon failure: -1
udo_sock_udp_server_recv_dataï
-
ssize_t udo_sock_udp_server_recv_data(struct udo_sock_udp *sock, void *data, const size_t size, struct sockaddr_in6 *addr, const void *sock_info);ï
Receive data from server socket file descriptor.
Param
Decription
sock
Pointer to astructudo_sock_udpcontext.data
Pointer to buffer to store data received from a socket.size
Size of data to receive from a socket.addr
Pointer tostructsockaddr_in6 which stores theaddress information of the socket that datawas received from.sock_info
Reserved for future usage. For now usedto set the flag argument of recvfrom(2).
- Returns:
on success: Amount of bytes receivedon failure: # < 0
udo_sock_udp_client_create_infoï
Structure passed to
udo_sock_udp_client_create()used to define how to create the client.
-
struct udo_sock_udp_client_create_infoï
-
ipv6- Boolean to determine if a socket is soley an ipv6socket or requires an ipv4-mapped-ipv6-address.
ip_addr- Textual network IP address to recvfrom(2)/sendto(2) data with.
port- Network port to recvfrom(2)/sendto(2) data with.
udo_sock_udp_client_createï
-
struct udo_sock_udp *udo_sock_udp_client_create(struct udo_sock_udp *sock, const void *sock_info);ï
Creates a socket that may be utilized for client socket operations.
Param
Decription
sock
IfNULLmemory will be allocated and return tocaller. If notNULLaddress passed will be usedto store the newly createdstructudo_sock_udpcontext.sock_info
Implementation uses a pointer to astructudo_sock_udp_client_create_info.
- Returns:
on success: Pointer to astructudo_sock_udpon failure:NULL
udo_sock_udp_client_connectï
-
int udo_sock_udp_client_connect(struct udo_sock_udp *sock);ï
Fliters client socket to allow sending data
Address is populated with a call to
udo_sock_udp_client_create().
Param
Decription
sock
Must pass a pointer to astructudo_sock_udp.
- Returns:
on success: 0on failure: -1
udo_sock_udp_client_send_dataï
-
ssize_t udo_sock_udp_client_send_data(struct udo_sock_udp *sock, const void *data, const size_t size, const void *sock_info);ï
Send data to client socket address provided via
call to
udo_sock_udp_client_create().
Param
Must pass a pointer to astructudo_sock_udp.data
Pointer to buffer to send through socket.size
Size of data to send through socket.sock_info
Reserved for future usage. For now usedto set the flag argument of sendto(2).
- Returns:
on success: Amount of bytes senton failure: # < 0
udo_sock_udp_get_fdï
-
int udo_sock_udp_get_fd(struct udo_sock_udp *sock);ï
Acquire socket file descriptor associated with
struct udo_sock_udp context.
Param
Decription
sock
Must pass a pointer to astructudo_sock_udp.
- Returns:
on success: UDP socket file descriptoron failure: -1
udo_sock_udp_get_ip_addrï
-
const char *udo_sock_udp_get_ip_addr(struct udo_sock_udp *sock);ï
Acquire textual network ip address associated
with
struct udo_sock_udp context.
Param
Decription
sock
Must pass a pointer to astructudo_sock_udp.
- Returns:
on success: Textual network ip addresson failure:NULL
udo_sock_udp_get_portï
-
int udo_sock_udp_get_port(struct udo_sock_udp *sock);ï
Acquire network port associated with
struct udo_sock_udp context.
Param
Decription
sock
Must pass a pointer to astructudo_sock_udp.
- Returns:
on success: Network port connected to contexton failure: -1
udo_sock_udp_destroyï
-
void udo_sock_udp_destroy(struct udo_sock_udp *sock);ï
Frees any allocated memory and closes FDâs (if open) created after
Param
Decription
sock
Pointer to a validstructudo_sock_udp.
udo_sock_udp_get_sizeofï
-
int udo_sock_udp_get_sizeof(void);ï
Returns size of the internal structure. So,
if caller decides to allocate memory outside
of API interface they know the exact amount
of bytes.
- Returns:
on success: sizeof(structudo_sock_udp)on failure: sizeof(structudo_sock_udp)
udo_sock_udp_recv_dataï
-
ssize_t udo_sock_udp_recv_data(const int sock_fd, void *data, const size_t size, struct sockaddr_in6 *addr, const void *sock_info);ï
Receive data from socket file descriptor.
Param
Decription
sock_fd
Socket file descriptor to receive data from.data
Pointer to buffer to store data received from a socket.size
Size of data to receive from a socket.addr
Pointer tostructsockaddr_in6 which stores theaddress information of the socket that datawas received from.sock_info
Reserved for future usage. For now usedto set the flag argument of recvfrom(2).
- Returns:
on success: Amount of bytes receivedon failure: # < 0
udo_sock_udp_send_dataï
-
ssize_t udo_sock_udp_send_data(const int sock_fd, const void *data, const size_t size, const struct sockaddr_in6 *addr, const void *sock_info);ï
Send data to socket file descriptor.
Param
Decription
sock_fd
Socket file descriptor to send data to.data
Pointer to buffer to send through socket.size
Size of data to send through socket.addr
Pointer tostructsockaddr_in6 which stores theaddress information of a socket that datawill be sent to.sock_info
Reserved for future usage. For now usedto set the flag argument of sendto(2).
- Returns:
on success: Amount of bytes senton failure: # < 0