56 long timeoutSeconds = 5L;
67 iResult = ::WSAStartup(MAKEWORD(2, 2), &wsaData);
76 SOCKET hsock = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
89 if (::inet_pton(AF_INET, ipaddr.c_str(), &
m_pSockAddrIn->sockaddr_in.sin_addr.s_addr) <= 0)
99 long timeoutMs = timeoutSeconds * 1000L;
100 iResult = ::setsockopt(
101 m_pSockRecord->socket(), SOL_SOCKET, SO_RCVTIMEO,
reinterpret_cast<const char*
>(&timeoutMs),
sizeof(timeoutMs));
104 tv.tv_sec = timeoutSeconds;
106 iResult = ::setsockopt(
107 m_pSockRecord->socket(), SOL_SOCKET, SO_RCVTIMEO,
reinterpret_cast<const char*
>(&tv),
sizeof(
struct timeval));
112 iResult = ::setsockopt(
113 m_pSockRecord->socket(), SOL_SOCKET, SO_BROADCAST,
reinterpret_cast<const char*
>(&trueVal),
sizeof(trueVal));
140 castClamped<bufsize_t>(size),
142 reinterpret_cast<struct sockaddr*
>(&
m_pSockAddrIn->sockaddr_in),
148 const bufsize_t eff_maxsize = castClamped<bufsize_t>(maxBytesToReceive);
150 buffer.resize(
static_cast<std::size_t
>(eff_maxsize));
151 char* pBuffer =
reinterpret_cast<char*
>(buffer.data());
158 buffer.resize(
static_cast<size_t>(retval));
167 buffer.resize(nBytesToReceive);
169 char*
const pBufferStart =
reinterpret_cast<char*
>(buffer.data());
170 char* pBuffer = pBufferStart;
172 while (nBytesToReceive > 0)
174 const bufsize_t eff_maxsize = castClamped<bufsize_t>(nBytesToReceive);
183 pBuffer += bytesReceived;
184 nBytesToReceive -=
static_cast<size_t>(bytesReceived);
187 buffer.resize(
static_cast<size_t>(pBuffer - pBufferStart));
196 int error_code_size =
sizeof(int);
197 ::getsockopt(
m_pSockRecord->socket(), SOL_SOCKET, SO_ERROR,
reinterpret_cast<char*
>(&
error_code), &error_code_size);
199 socklen_t error_code_size =
sizeof error_code;
202 std::cout <<
"Error getting error code" << std::endl;