Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Easily create and use UDP sockets. More...
#include "udp_socket.h"
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
Go to the source code of this file.
Macros | |
#define | TRACE(type, fmt, args...) |
#define | TRACE_ERROR 1 |
Functions | |
int | udp_socket_create (struct UdpSocket *sock, char *host, int port_out, int port_in, bool broadcast) |
Create UDP socket and bind it. More... | |
int | udp_socket_send (struct UdpSocket *sock, uint8_t *buffer, uint32_t len) |
Send a packet from buffer, blocking. More... | |
int | udp_socket_send_dontwait (struct UdpSocket *sock, uint8_t *buffer, uint32_t len) |
Send a packet from buffer, non-blocking. More... | |
int | udp_socket_recv_dontwait (struct UdpSocket *sock, uint8_t *buffer, uint32_t len) |
Receive a UDP packet, dont wait. More... | |
int | udp_socket_recv (struct UdpSocket *sock, uint8_t *buffer, uint32_t len) |
Receive one UDP packet, blocking. More... | |
int | udp_socket_subscribe_multicast (struct UdpSocket *sock, const char *multicast_addr) |
int | udp_socket_set_recvbuf (struct UdpSocket *sock, int buf_size) |
int | udp_socket_set_sendbuf (struct UdpSocket *sock, int buf_size) |
Easily create and use UDP sockets.
Definition in file udp_socket.c.
#define TRACE | ( | type, | |
fmt, | |||
args... | |||
) |
Definition at line 37 of file udp_socket.c.
#define TRACE_ERROR 1 |
Definition at line 38 of file udp_socket.c.
int udp_socket_create | ( | struct UdpSocket * | sock, |
char * | host, | ||
int | port_out, | ||
int | port_in, | ||
bool | broadcast | ||
) |
Create UDP socket and bind it.
Create UDP network (in/out sockets).
[out] | sock | pointer to already allocated UdpSocket struct |
[in] | host | ip address or hostname (hostname not possible if static linking) |
[in] | port_out | output port |
[in] | port_in | input port (set to < 0 to disable) |
[in] | broadcast | if TRUE enable broadcasting |
Definition at line 49 of file udp_socket.c.
References UdpSocket::addr_in, UdpSocket::addr_out, and UdpSocket::sockfd.
Referenced by udp_arch_periph_init(), and viewvideo_init().
Receive one UDP packet, blocking.
Receive one UDP packet.
[in] | sock | pointer to UdpSocket struct |
[out] | buffer | buffer to write received packet to |
[in] | len | buffer length in bytes (maximum bytes to read) |
Definition at line 185 of file udp_socket.c.
References UdpSocket::addr_in, and UdpSocket::sockfd.
Receive a UDP packet, dont wait.
Sets the MSG_DONTWAIT flag, returns 0 if no data is available.
[in] | sock | pointer to UdpSocket struct |
[out] | buffer | buffer to write received packet to |
[in] | len | buffer length in bytes |
Definition at line 160 of file udp_socket.c.
References UdpSocket::addr_in, UdpSocket::sockfd, TRACE, and TRACE_ERROR.
Send a packet from buffer, blocking.
[in] | sock | pointer to UdpSocket struct |
[in] | buffer | buffer to send |
[in] | len | buffer length in bytes |
Definition at line 120 of file udp_socket.c.
References UdpSocket::addr_out, UdpSocket::sockfd, TRACE, and TRACE_ERROR.
Send a packet from buffer, non-blocking.
[in] | sock | pointer to UdpSocket struct |
[in] | buffer | buffer to send |
[in] | len | buffer length in bytes |
Definition at line 141 of file udp_socket.c.
References UdpSocket::addr_out, and UdpSocket::sockfd.
Referenced by rtp_packet_send().
int udp_socket_set_recvbuf | ( | struct UdpSocket * | sock, |
int | buf_size | ||
) |
Definition at line 205 of file udp_socket.c.
References UdpSocket::sockfd.
int udp_socket_set_sendbuf | ( | struct UdpSocket * | sock, |
int | buf_size | ||
) |
Definition at line 220 of file udp_socket.c.
References UdpSocket::sockfd.
int udp_socket_subscribe_multicast | ( | struct UdpSocket * | sock, |
const char * | multicast_addr | ||
) |
Definition at line 194 of file udp_socket.c.
References UdpSocket::sockfd.