FreeBSD Manual Pages
UDP_RECV(3) libdill Library Functions UDP_RECV(3) NAME udp_recv - receives an UDP packet SYNOPSIS #include <libdill.h> ssize_t udp_recv( int s, struct ipaddr* addr, void* buf, size_t len, int64_t deadline); DESCRIPTION UDP is an unreliable message-based protocol defined in RFC 768. The size of the message is limited. The protocol has no initial or termi- nal handshake. A single socket can be used to different destinations. This function receives a single UDP packet. s: Handle of the UDP socket. addr: Out parameter. IP address of the sender of the packet. Can be NULL. buf: Buffer to receive the data to. len: Size of the buffer, in bytes. deadline: A point in time when the operation should time out, in mil- liseconds. Use the now function to get your current point in time. 0 means immediate timeout, i.e., perform the operation if possible or re- turn without blocking if not. -1 means no deadline, i.e., the call will block forever if the operation cannot be performed. This function is not available if libdill is compiled with --dis- able-sockets option. RETURN VALUE In case of success the function returns size of the received message, in bytes. In case of error it returns -1 and sets errno to one of the values below. ERRORS • EBADF: Invalid handle. • EBUSY: The handle is currently being used by a different coroutine. • ECANCELED: Current coroutine was canceled. • EINVAL: Invalid argument. • EMSGSIZE: The data won't fit into the supplied buffer. • ENOTSUP: The handle does not support this operation. • ETIMEDOUT: Deadline was reached. EXAMPLE struct ipaddr local; ipaddr_local(&local, NULL, 5555, 0); struct ipaddr remote; ipaddr_remote(&remote, "server.example.org", 5555, 0, -1); int s = udp_open(&local, &remote); udp_send(s1, NULL, "ABC", 3); char buf[2000]; ssize_t sz = udp_recv(s, NULL, buf, sizeof(buf), -1); hclose(s); SEE ALSO mrecv(3) mrecvl(3) msend(3) msendl(3) now(3) udp_open(3) udp_open_mem(3) udp_recvl(3) udp_send(3) udp_sendl(3) libdill UDP_RECV(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=udp_recv&sektion=3&manpath=FreeBSD+Ports+15.0>
