2#include "../../../Defines.h"
4#ifdef USE_CAMERA_MODULE
18typedef uint32_t IPADDRESS;
19typedef uint16_t IPPORT;
23inline void closesocket(SOCKET s) {
27#define getRandom() rand()
29inline void socketpeeraddr(SOCKET s, IPADDRESS *addr, IPPORT *port) {
32 socklen_t len =
sizeof(r);
33 if(getpeername(s,(
struct sockaddr*)&r,&len) < 0) {
34 printf(
"getpeername failed\n");
42 *addr = r.sin_addr.s_addr;
46inline void udpsocketclose(UDPSOCKET s) {
50inline UDPSOCKET udpsocketcreate(
unsigned short portNum)
54 addr.sin_family = AF_INET;
55 addr.sin_addr.s_addr = INADDR_ANY;
57 int s = socket(AF_INET, SOCK_DGRAM, 0);
58 addr.sin_port = htons(portNum);
59 if (bind(s,(sockaddr*)&addr,
sizeof(addr)) != 0) {
60 printf(
"Error, can't bind\n");
69inline ssize_t socketsend(SOCKET sockfd,
const void *buf,
size_t len)
72 return send(sockfd, buf, len, 0);
75inline ssize_t udpsocketsend(UDPSOCKET sockfd,
const void *buf,
size_t len,
76 IPADDRESS destaddr, uint16_t destport)
80 addr.sin_family = AF_INET;
81 addr.sin_addr.s_addr = destaddr;
82 addr.sin_port = htons(destport);
85 return sendto(sockfd, buf, len, 0, (sockaddr *) &addr,
sizeof(addr));
93inline int socketread(SOCKET sock,
char *buf,
size_t buflen,
int timeoutmsec)
98 tv.tv_usec = timeoutmsec * 1000;
99 setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv,
sizeof tv);
101 int res = recv(sock,buf,buflen,0);
109 if (errno == EWOULDBLOCK || errno == EAGAIN)