socket_recv6(3)socket_recv6(3)NAMEsocket_recv6 - receive a UDP datagram
SYNTAX
#include <socket.h>
ssize_t socket_recv6(int s, char* buf, size_t len,
char ip[16], uint16* port, uint32* scope_id);
DESCRIPTIONsocket_recv6 receives up to len bytes starting at buf from a UDP data‐
gram coming in on the socket s. It writes the UDP port to port and the
IP address to ip, and returns the number of bytes actually received (or
-1 if anything went wrong).
For link-local addresses, scope_id will become the network interface
number, which can be translated into the name of the interface ("eth0")
with socket_getifname.
RETURN VALUEsocket_recv6 returns the number of bytes in the datagram if one was
received. If not, it returns -1 and sets errno appropriately.
EXAMPLE
#include <socket.h>
int s;
char ip[16];
uint16 p;
char buf[1000];
int len;
uint32 scope_id;
s = socket_tcp4();
socket_bind6(s,ip,p);
len = socket_recv6(s,buf,sizeof(buf),ip,&p,&scope_id);
SEE ALSOsocket_recv6(3), socket_getifname(3)socket_recv6(3)