Эта проблема сводит меня с ума.
Я создаю сокет и устанавливаю SO_REUSEADDR.
thisSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
int i = 1;
setsockopt(thisSocket , SOL_SOCKET, SO_REUSEADDR, (char *)&i, (int)sizeof(i));
Когда я связываю:
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));
Иногда я получаюошибка:
"An invalid argument was supplied"
Что я здесь не так делаю?И почему я получаю эту ошибку?
UPDATE
Оказывается, что пакеты были отправлены в сокет до вызова bind ().Это привело к тому, что bind () вернул ошибку.