This problem is driving me nuts.
I create a socket and set SO_REUSEADDR.
thisSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
int i = 1;
setsockopt(thisSocket , SOL_SOCKET, SO_REUSEADDR, (char *)&i, (int)sizeof(i));
When I bind:
sockaddr_in_t sock_addr;
memset(&sock_addr, 0, sizeof(sockaddr_in_t));
sock_addr.sin_family = AF_INET;
sock_addr.sin_port = htons(_listeningPort);
sock_addr.sin_addr.s_addr = inet_addr("0.0.0.0");
bind(thisSocket, reinterpret_cast<sockaddr_t*>(&sock_addr), sizeof(sock_addr));
I sometimes get an error:
"An invalid argument was supplied"
What am I doing wrong here? And why am I getting this error?
UPDATE
Turns out that packets were being sent on the socket before bind() was called. This caused bind() to return an error.
Turns out that packets were being sent on the socket before bind() was called. This caused bind() to return an error.